Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
ladyzarulem
6 лет назад

Код — это эсперанто

Привет друзья! Совсем недавно, в одном из чатов, у меня состоялся весьма интересный диалог, который помог мне понять разницу между… (между чем, прочитаете в самом диалоге). С разрешения второго участника я опубликую этот разговор, поскольку думаю, что его содержание будет интересно и новичкам, и опытным пользователям, которые гуманитарии (нам особенно). Итак, речь шла о качестве написанного когда, в том числе кода блокчейнов Голос и Стимит.

— Каждый человек, если он делает что-то, заинтересован сделать свою работу хорошо. Кодеры же тоже люди ))) Я просто не представляю себе, что значит «хороший» и «плохой» код. Вероятно, это так — когда написано сложно то, что можно написать гораздо проще?

— Ну, в чем разница между хорошим рерайтом и плохим рерайтом? Ведь можно же сделать хорошо. А поди ж ты...

— Да. я поняла. Пример с рерайтом очень удачен!!! )

— Вот тебе самый примитивный пример. Сравни три кода.

Первый:

  1. Купи яблок

Второй:

  1. Купи килограмм яблок
  2. Предпочтительно красных, если нет, то зеленых, если нет, то желтых, если нет — то любых.
  3. Не дороже 1000 за кг, не дешевле 100 за кг.
  4. Если не будет яблок купи килограмм груш (соответствующих условию из пункта 3).
  5. Если не будет ни яблок ни груш — не покупай ничего.

Третий:

  1. Купи килограмм яблок
  2. Список сортов яблок в порядке предпочтения смотри в модуле 1
  3. Допустимый диапазон цен смотри в модуле 2
  4. Если не будет яблок купи килограмм груш. Список сортов в порядке предпочтения в модуле 3, диапазон цен в модуле 4.
  5. Если не будет ни яблок ни груш — не покупай ничего.

В результате первый просто зачастую не сработает, во втором все переменные зашиты внутри кода и чтобы что-то поменять — надо лезть внутрь, а в третьем логика кода отдельно, сама по себе, а все настройки вынесены отдельно и легко меняются.

— Второй самый лучший?

— Третий самый лучший.

— Но там нет данных, к которым отсылают. Значит, данные лежат отдельно где-то? Это там, что называется докером или контейнером?

— Ну, мне было лень писать сорта яблок, я в них не разбираюсь. Но смысл именно в том, что они вынесены... Нет. Их называют библиотеками.

— И эти библиотеки могут использовать и другие люди, получаются. То есть, польза для общества. Ага.

— По разному, есть публичные библиотеки, а есть узкоспециальные. Более того. Допустим, надо изменить допустимые цены для груш, их можно покупать дороже — мы можем унаследовать цены для яблок (скопировать модуль) и добавить к нему условие, что все цифры там умножаются на 2. Тогда если со временем из-за инфляции все подорожает, нам достаточно будет поменять только цены в главном модуле, и все унаследуется в производные модули.

— Понятно. Получается, прежде чем писать код чего-либо, кодер должен четко представлять себе алгоритм его работы. Пока я уяснила, что хороший код — это правильный, четкий алгоритм + правильная запись команд + оптимизация команд + возможность его легкого изменения в случае необходимости.

Конец диалога

...Скажу я вам, тема меня зацепила. Тем более, что она часто обсуждается в Делегатском чате тоже. Я совсем, совсем не кодер. Иногда мне удавалось заглядывать в записи кода в блокчейне Голоса (спасибо Вику), порой подсматривала то, что кодил сын. Да, еще лазала в код страничек Word Press, опять же с сыном, поскольку на вордпрессе у меня сайт. И все. Но решила немного почитать в инете, что об этом говорят «кодо-гуру», и нашла очень интересную статью, а в ней — весьма интересную книгу, называется она «Совершенный код», и написал ее Стив Макконнелл. В этой книге 900 страниц, но авторы статьи уверяют, что ее прочтение — необходимо любому, особенно начинающему кодеру!


Источник

Тезисно изложу основные позиции, на которых останавливаются авторы статьи, надеюсь, они «совершат просветление» у вас в голове а может быть, даже будут интересны.

Код — это эсперанто

Помните, было время, когда энтузиасты пытались ввести этот искусственный язык? Цель очевидна — чтобы люди на всей планете, изучив его, могли понимать друг друга. Так вот для прогеров он не нужен. У них есть свой эсперанто. И это код.

Конечно, существуют некие «правила написания кода», но они не жесткие и не всегда кодеры им следуют.

Авторы статьи шутят, напоминая об одном из принципов проектирования - KISS (Keep It Simple, Stupid! Делай это проще, тупица!). То есть, во главу угла ставится ясность и простота. Но простота простоте рознь! Простота никак не должна повлиять на продуктивность.

Хороший, чистый код должен решать ряд задач. Среди них:

  • Легкость тестирования и последующей настройки
  • Иметь четкую логику именования, читабельный стиль интерфейса и реализации
  • Отличное структурирование — для возможности работы программы на любом аппаратном обеспечении или разных платформах
  • Создать возможность оптимизации — в том числе, изменения самого кода и его архитектуры, добавления новых свойств, повышения быстродействия
  • Обеспечить устойчивую бесперебойную работу программы
  • В случае открытого кода — дать возможность работать над ним разным людям или сообществам

Если я правильно поняла пожелание авторов статьи, то эти правила должны стать мантрой, которую любой продвинутый кодер должен знать наизусть!!!

Далее в статье предлагаются 8 правил хорошего кода по версии GeekBrains, и я не буду их повторять, потому что там в текст уже включены страшные картинки с непонятными буквами, словами и цифрами! Кто знает, что это, какие команды — почитайте статью!!!

Надеюсь, было полезно!

1
164.619 GOLOS
На Golos с February 2017
Комментарии (113)
Сортировать по:
Сначала старые