kamyshev.code – Telegram
kamyshev.code
1.77K subscribers
40 photos
565 links
Архитектура, код, софт-скиллы и всё остальное. Вопросы, пожелания, комментарии — @igorkamyshev

https://kamyshev.me
Download Telegram
Самое важное в разработчике

Программист работает над системами с очень большой неопределенностью внутри. Невозможно знать ответы на все вопросы, что возникают в процессе производства ПО.

И потому самое важное качество крутого программиста — умение находить ответы на вопросы. Правильно формулировать вопрос, находить на него ответ, применять его в конкретной задаче.

И таких программистов исчезающе мало. Большая часть не справляется даже с первым этапом — формулировкой вопросов. У меня нет рецепта, как этому научиться, но научиться нужно.

#общие_знания
Нужная книга

Прочел "Теоретический минимум по Computer Science".

Хорошая книга, очень обширная. Рассматриваются как привычные темы: сложность алгоритмов, комбинаторика, теория вероятностей, так и более специфичные вещи: устройство баз данных, архитектура компьютеров.

Глава про базы данных вообще прекрасна.

Читать определенно стоит, книжка совсем короткая и очень полезная.

#cs
Программист — дофига творческая профессия. Многим разработчикам трудно работать над проектами, которые им не нравятся.

Важно заметить в себе отвращение к проекту, нежелание писать код и исправить это.

+ Найди челендж в простых задачах. Даже самый простые фичи сделанные качественно требуют усилий.
+ Найти причину грусти и убрать ее. Рецепта нет, нужно пробовать и пытаться.

Ну и есть простой путь — попроситься на другой проект. Лучше сменить проект и приносить деньги, чем получать зарплату и не делать полезного.

#общие_знания
Исследуя GitHub

Некоторое время назад писал о процессе публикации npm-пакета.

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

Хотелось переложить максимум забот на компьютер, и избежать этой боли. На выходных сделал библиотеку @solid-soda/noscripts, которая содержит в себе все рутинные штуки. Линтер, преттир, генерация новых версий, все там.

Теперь любой проект начинается с установки этой библиотеки.

#автоматизация
Мудрость из книги

Изучать паттерны проектирования полезно. Добрался до купленной осенью книги "Погружение в паттерны проектирвования" Александра Швеца.

Обычно, когда говорят "паттерны проектирования" имеют ввиду работу с исключительно объектно-ориентированными системами, потом книга начинается с краткого введения в ООП.

ООП — методология разработки программ, в которой все важные вещи представляются объектами. Каждый объект построен по определенным правилам, которые называют классом. Классы основываются друг на друге, что называют наследованием.

Конспект книги Александра Швеца "Погружение в паттерны проектирования".

#проектирование
​​Мудрость из книги

Четыре принципа поверх которых строяться объектно-ориентированные приложения:
1. Абстракция — рассмотрения объекта реального мира в контексте конкретной задачи.
2. Инкапсуляция — сокрытие внутренней реализации.
3. Наследование — передача характеристик одних объектов другим через отношение "является" (кот является животным).
4. Полиморфизм — возможность работать с конкретной структорой данных, будто с абстрактной.

Конспект книги Александра Швеца "Погружение в паттерны проектирования".

По мнению Роберта Мартина, ООП не совсем про эти три характеристики, они легко придаются програмам не следующим объектно-ориентированной парадигме.

#проектирование
Мудрость из книги

Один из признаков хорошо спроектированного приложения — переиспользование кода. Это снижает стоимость разработки, повышает надежность (меньше кода — меньше багов). А еще, хорошая архитектура позволяет легко расширять программу.

Конспект книги Александра Швеца "Погружение в паттерны проектирования".

#проектирование