Здравствуйте, GarryIV, Вы писали:
V>>Для меня sqrt такая же закорючка как и square root. То есть нужно писать квадратный корень чтобы я сразу понял без расшифровки переводом.
GIV>Вот серьезно да? Это примерно на первом курсе же учат min, max, sqrt, pow, find, get, move, copy и тому подобное.
GIV>Мб надо не забивать себе голову векторной галиматьей и тупо запомнить пару тысяч слов.
Дело в том, что я и так помню их перевод, причём как английскую полную расшифровку, так и русскую.
Но для примера цитата из книги.
Как правило, программисты весьма умны. А умные люди иногда любят показывать мощь интеллекта, демонстрируя свои способности к мысленному жонглированию. В конце концов, если вы помните, что переменная r содержит URL-адрес с удаленным хостом и схемой, преобразованный к нижнему регистру, это совершенно очевидно свидетельствует о вашем уме.
Одно из различий между умным и профессиональным программистом заключается в том, что профессионал понимает: ясность превыше всего. Профессионалы используют свою силу во благо и пишут код, понятный для других людей.
Ну то есть если я понимаю это так.
1. min, minimal, наименьшее (минимальное).
2. max, maximal, наибольшее (максимальное).
3. sqrt, square root, квадратный корень.
4. pow, power, (в текущем контексте) степень (возведение в степень).
И так далее.
Но
Мартин Роберт говорит, что я просто умственно жонглирую.
1. Во-первых, он предлагает не использовать сокращения, а давать полные имена.
2. Во-вторых, для него родной язык английский США, то есть применительно ко мне я должен использовать его советы для языка русский Россия.
И вот здесь я натыкаюсь на фундаментальную проблему. Люди клали болт на полные имена и используют английские сокращения. Лично я предполагаю, что так проще было использовать имена в выражениях. Ну или может ещё что-то из сокращений в математике.
Дело не в том, что я не знаю, что это значит, но процесс выглядит так.
1. Декодирование.
2. Осмысление.
3. Кодирование.
А Мартин Роберт я так понимаю хочет чтобы выглядело так.
1. Осмысление.
Конечно, чтение чистого кода никогда не сравнится с чтением «Властелина колец». И все же литературная метафора в данном случае вполне уместна. Чистый код, как и хорошая повесть, должен наглядно раскрыть интригу решаемой задачи. Он должен довести эту интригу до высшей точки, чтобы потом читатель воскликнул: «Ага! Ну конечно!», когда все вопросы и противоречия благополучно разрешатся в откровении очевидного решения.
Или вот ещё цитата почему он хочет чтобы код можно было прочесть как художественную книгу.
В общем, вы поняли. На самом деле соотношение времени чтения и написания кода превышает 10:1. Мы постоянно читаем свой старый код, поскольку это необходимо для написания нового кода.
Сюда бы вставить какой-нибудь смешной мемасик про то, что мы постоянно читаем свой старый код. Может Мартин Роберт и читает, но он на то и профессионал. Вот я и подумал, что заставит меня прочитать мой старый код. Написав его на русском, причём именно так как думаю именно я, то возможно я бы его и прочёл снова и снова, а может и нет.
И конечно же стоит вспомнить его и не только его утверждение, что хороший код говорит сам за себя. Но там уже другая четвёртая глава про комментарии и прочее. Из-за чего я и пришёл к идее проверить мысль, что можно написать тот же самый код, но заменить ключевые слова и идентификаторы на полные русские имена. Причём сделать это с помощью комментариев в виде карточек.
Понятно, что можно всё это проигнорировать и продолжить мысленное жонглирование. Но мне стало интересно проверить эти мысли.
Или ещё нашёл статью на тему перевода.
О русском языке в программировании (3 янв 2021)
И сразу началось с того, что Print я перевожу как Печать, а не Вывод, потому что если Ввод это Input, то Вывод для меня это Output. И дальше идёт цепь несовпадений, типа Возврат это Return, хотя я бы предпочёл Вернуть. Причём не то, чтобы я был прав, но ведь это Мартин Роберт хочет чтобы люди читали код как "Властелина колец".
Потому в топике я и написал.
Хотя повторю главную мысль статьи. Сколько бы Мартин Роберт в своём "Чистом коде" не говорил о его читаемости, это невозможно осуществить читая чужой код или английский код. Системы мышления разных людей не совместимы даже если они говорят на одном условном языке, не говоря уже о разных языках.
Почему? Да потому что первый же человек с ходу переводит не так как я.
Вопрос здесь в том.
1. Подстраиваемся ли мы под код других.
или
2. Подстраиваем код других под себя.
Конечный результат может быть одним и тем же, тот же код с английскими ключевыми словами и английскими идентификаторами. А вот осмысление может проходить по разному. Как и говорил Мартин Роберт, можно и букву r подменять чем хочешь, а можно написать что это такое не просто на условно родном языке, а на языке собственного мышления.