Это статья об основах программирования на Golang. На канале я рассказываю об опыте перехода в IT с нуля, структурирую информацию и делюсь мнением
Хой, джедаи и амазонки! С другом начали читать книгу "Чистый код" Роберта Мартина, её полезно изучить программистам.
Для понимания сути книги, нужен контекст ситуации. Поэтому поделюсь как впечатлениями о книге, так и проанализирую технические детали. Постараюсь адаптировать и проиллюстрировать код в примерах для Go (в самой книге примеры на java). Делюсь информацией о книге поэтапно. Поехали>>>
"Чистый код". Глава 1
Предисловие, введение, благодарности и первая глава вдохновляют читать дальше. Создаётся ощущение близкое к эйфории от предвкушения чего-то настолько нового, что создаст культурный шок.
Для меня, новичка в IT, открывается какой-то новый мир, ранее недоступный. Это ощущение появилось после чтения изречений десятка магов боевых искусств программирования.
Много непонятного: хеш-таблицы, API, эвристика. Всё это найду в интернете, а пока читаю - не останавливаюсь, когда что-то не понимаю. Делаю заметку, читаю спокойно дальше - на общий смысл незнание некоторых терминов не влияет.
Автор говорит о бережливом производстве, 5S, TPM - хорошо известные принципы в машиностроении. Автор говорит о методологиях Agile, Scrum, а ещё о боевых искусствах, применительно к программированию. Когда-то я занимался айкидо, лет семь, наверное. Потом считал, что применяю принципы айкидо в жизни в обычных ситуациях - скажем так, филосовфию айкидо. А здесь автор делится мыслью, что следует учиться у мастера одного, другого, третьего - а потом можно "открывать свою школу". Т.е. на основе накопленного опыта привносить в программирование и написание кода что-то новое.
Запомнилась такая фраза из книги:
У меня для вас отличная новость: хороших программистов не хватает.
Некоторые мысли автора наивные. Например, автор считает, что программист может спорить с руководством по поводу чистки кода как обоснование срыва графиков работ. На мой взгляд руководитель скажет: "В чём проблема? Успевай чистить код и делать график". И всё же спорить нужно, если руководитель не понимает важность чистого кода.
Как можно чистить код? Автор рекомендует начать с простого, по аналогии с системой 5S. Сделаю небольшое отступление и познакомлю с принципами 5С:
1) Сортировка - освободи рабочее пространства от ненужного;
2) Соблюдай порядок - рационально расположи нужное;
3) Содержи в чистоте - наводи порядок, регулярно пересматривай рабочее место и устраняй неисправности;
4) Стандартизируй - все процедуры нужно закрепить в виде нормативных документов/памяток/распоряжений;
5) Совершенствуй - пересматривай первые 4 пункта, актуализируй их, улучшай под текущие потребности.
Инженер-программист может применить 5S:
- На рабочем месте: компьютерный стол, расположение ноутбука и т.д.;
- Цифровом рабочем пространстве: ярлыки рабочего стола ПК, струтура файлов и папок в облаке и т.д.;
- В коде: об этом вся книга Роберта Мартина.
Роберт Мартин в первой главе говорит о важности чистки кода небольшими шагами, например:
- Упростить сложную конструкцию условий;
- Устранить повторения;
- Дать переменной правильное наименование.
По поводу переменных - пока я работаю в "песочнице" replit, там приходится переименовывать каждую переменную вручную. Редакторы исходного кода, например, Visual Studio Code, позволяют легко и просто переименовать все переменные кода.
Пример кода
По данному числу n закончите фразу "На лугу пасется..." одним из возможных продолжений: "n коров", "n корова", "n коровы", правильно склоняя слово "корова".
Входные данные
Дано целое число менее 100.
Выходные данные
Программа должна вывести введенное число n и одно из слов (на латинице): korov, korova или korovy, например, 1 korova, 2 korovy, 5 korov. Между числом и словом должен стоять ровно один пробел.
Пример ввода: 10
Пример вывода: 10 korov
Далее пример фрагмента кода со сложной конструкцей if на Go.
И так далее, до 100. Легко представить, каких размеров вышел код. Придёт время, и к этому фрагменту кода может потребоваться вернуться. И, например, посчитать не до 100, а до 100 000, или ещё что-нибудь.
Код, например, можно оптимизировать так:
В этом примере кода учтены гипотетические "отрицательные" коровы, а также нет предела "до 100".
Пока прочитал главу 1, буду изучать далее. Одновременно получаю знания по Go: изучу функции, структуры, указатели и др. Последующие главы книги будут сложнее, поэтому нужна хорошая база.
Если хочешь, добавляйся в наш телеграм-чат. Главная задача чата - поддержка и мотивация заниматься дальше без концентрации на конкретном языке программирования.
Бро, ты уже здесь? 👉 Подпишись на канал «Я, Golang-инженер», будем изучать IT вместе 👨💻👩💻👨💻