dd

О разработке, работе руками и сношении с машиной

  • Agile и мотивация разработчиков

    Среди всех провокационных вопросов, которые можно задать agile-методистам, есть один от которого подгорает чуть меньше чем у всех.
    Вся культура разработки строится на базовом принципе, что разработчики высокомотивированы и просто мечтают работать в эффективной команде. Но вот стоит спросить "а что если программистам нравится бухать и тусоваться в барах, а не писать программы и стремиться быть эффективными?". После нескольких попыток рассказать, что человек который любит бухать на самом деле скрыто мечтает фигачить код и общаться в команде, обычно идет "это вообще не проблема методологии".
    Практика такова, что огромная часть разработчиков любит пиво больше чем программировать. В программировании их вообще привлекает только та сумма, которая ежемесячно падает на их счет.
    Самое интересное, что Agile очень помогает мимикрировать под увлеченного программиста — "я не сплю, я думаю", "зачем документация, давайте пообщаемся и найдем решение", "давайте подумаем как быть более эффективными"… В общем Agile позволяет унылое г… выдать за "продукт", а собственную лень, за глубокий мыслительный процесс.
    И мне все больше кажется, что именно возможность "закосить" нравится программистам в Agile больше всего.


  • Созвон ни о чём

    Соер очень вовремя написал этот пост, потому что буквально пару дней назад у меня был первый созвон по результатам спринта и всё, чем мы занимались с менеджерами — по сто раз пережёвывали одно и тоже, но разными словами
    Собрание было похоже на сборище бабок у подъезда и по его итогам стало понятно ровно ничего
    Если меня читает какой-нибудь менеджер — не делайте так, пожалуйста, это напрочь отбивает желание работать


  • Про Java на Reddit

    За что я сильно полюбил реддит, так это за схожие взгляды — раз в день точно вижу посты, где джаву втаптывают в грязь
    Естественно, «я не понимаю зачем джава нужна, она на самом-то деле лучше шарпа, а я не понял еще, что для каждой задачи свои технологии», но… call me when you have REAL generics


  • Комментарии в канале

    Подрубил комментарии, теперь можете писать свои мысли/вопросы/пожелания. Правда, они доступны только для новых постов, поэтому по старым можете писать под этим постом, на всё отвечу🙂


  • Доработка сервера изображений

    Выше писал про сервер изображений на шарпе
    Так вот, доделал там минимально возможный функционал по модификации изображений (ширина/высота) и залил на гитхаб
    Из планов:
    — перейти на постгрес вместо sqlite
    — расширить возможности модификации
    — докеризация
    Ссылка — https://github.com/ddruganov/sharp-storage


  • Reddit вместо Пикабу

    Пару месяцев назад активно искал разные источники новостей по программированию, в итоге подписался на пару каналов в телеграме, но этого стало не хватать — контент выкладывают довольно редко, и ещё реже он интересный
    А недавно ещё и удалил пикабу, так как заметил, что я его просто бездумно листаю, постоянно бубня под нос, что какую-то херню выкладывают
    Решил скачать реддит и мне прям очень понравилось
    Подписался на кучу тематических сабреддитов, в которых люди постоянно что-то обсуждают, делятся новостями и навыками
    Теперь просто посидеть в телефоне уже не получается — как бы ни хотелось, постоянно читаю что-нибудь интересное из разных сфер IT, а если хочется прям совсем потупить, то мемов про программирование там целая гора
    Посмотрим, насколько меня хватит, но пока я в восторге


  • Переход на PHPStorm

    Кстати, писал тут недавно, что мне и VSCode хватает для разработки…
    Когда взял ноут с 16 гигами, то решил, что наверное может быть и стоит попробовать PHPStorm — в итоге подсел)
    Он, конечно, далеко не такой удобный, как VSCode в плане отзывчивости и простоты интерфейса, но все возможности рефакторинга и поиска по коду дают шторму выиграть
    Ещё огромный плюс шторма — автогенерация кода, больше не приходится вручную писать геттеры в моделях
    Вывод: экспериментируйте с инструментами разработки, возможно, некоторые из них не зайдут с первого раза, но это не повод их бросать — вернитесь к ним через полгода-год, не мала вероятность, что вы уже доросли до их использования


  • Файловый сервер на C#

    На этих выходных закончил работу над простеньким прототипом файлового сервера на c#
    Далось мне это не прям так чтоб просто, но каждый шаг разработки доставлял удовольствие
    В очередной раз убедился, что шарп прекрасный, простой язык, особенно учитывая все нововведения, касающиеся minimal api, из-за которого теперь веб-апи на шарпе выглядит не сильно отлично от сервера на Express + TypeScript
    Так вот, к сути — мне надоели виджеты загрузки изображений, используемые на работе, которые возвращают относительные пути до изображения. Да, это просто, да, быстро, но мне вот вообще не сдалось знать какой там путь до изображения и тем более какой у него формат
    Поэтому работа файлового сервера следующая: загружаешь фотку — получаешь uuid. Затем по uuid получаешь эту же фотку-оригинал, либо через get-параметры указываешь параметры для модификации
    Сумасшедше простой концепт, который в итоге позволяет скрыть все детали загрузки и модификации изображений.
    Из минусов — деплоить и содержать приходится на один сервис больше для каждого проекта, но заказчикам обычно вообще до лампочки, а разработчики быстро оценят простоту работы с таким отделённым сервисом.


  • Обзор инструментов разработки

    Ну, а теперь, собственно, было бы, наверное, странно не описать все инструменты, которые я использую:
    1. Браузер — chrome
    Просто потому что я слишком привык к нему и сижу на нём ещё года с 2011
    2. Среда разработки — VSCode
    Бытует мнение, что это и не среда разработки совсем, но плагины этот вопрос решают
    3. Плагины:
    3.1. Intelephense — языковой сервер для PHP
    3.2. Vetur — языковой сервер для Vue
    4. Tabnine — автодополнение кода с помощью искусственного интеллекта
    Штука крайне полезная, потому что, хоть самым бойлерплейтным языком и считают Java, в PHP тоже хватает максимально репетативных кусков кода. Раньше у них была полная лицензия для студентов, сейчас не могу найти как её включить, но если вдруг найду — отпишусь тут. В принципе, и без лицензии работает хорошо
    5. Fig — автозаполнение команд, да и вообще всевозможная помощь по работе с терминалом
    6. DBeaver — для взаимодействия с базами данных
    Нравится тем, что поддерживает все базы данных, с которыми я работаю.
    Иногда поджирает память, но это лечится перезагрузкой. Всё-таки это гораздо лучше отдельной установки pgAdmin + MySqlWorkbench.
    Есть ещё DataGrip, но он как и все продукты от JetBrains очень любит вашу ОЗУ.
    7. Rider — для разработки на c#
    Очень долго мучился с поддержкой шарпа в VSCode, но она так и не завелась по-нормальному, мне не подошло для полноценной разработки.
    Затем была попытка поставить VisualStudio, но и там не увенчалось успехом. Вижуха конечно установилась, но там было 3 шаблона для проектов и как добавлять больше (даже те, которые должны быть по умолчанию) — непонятно; мне стало слишком лень тратить много времени на это.
    А вот Rider завёлся и выдал мне все шаблоны проектов сразу же. Интерфейс это проги мне знаком достаточно хорошо, потому что я очень люблю YouTube-канал одного разработчика на шарпе (https://www.youtube.com/c/Elfocrash), а он прям топит за Rider.
    8. Docker — куда без него
    Сменив работу в ноябре 2021, мне пришлось часто переключаться между проектами с очень разными конфигурациями. Ставить себе это всё на ноут — проще застрелиться. Пришлось осваивать docker, а теперь уже никак без него.

    Вроде ничего не забыл 🤷🏼‍♂️
    Хотелось бы сказать, что выбор инструментов для разработки в некоторых случаях обусловлен только моей ОС (Мак), вероятно, на винде или линуксе дела бы обстояли по-другому


  • Апгрейд ноутбука до 16 ГБ

    Когда полтора года назад выбирал себе ноут, то из арсенала утилит у меня был только VSCode, браузер и pgAdmin в этом же браузере — набор, полностью соответствовавший сложности задач и моего мышления на тот момент
    Но со временем потребности стали расти, активно начал пользоваться докером, standalone-приложением для взаимодействия с базой данных, приложением для автозаполнения кода с помощью ИИ, всякие плюшки для ускорения работы в терминале и так далее, и всё это жрёт память как не в себя
    Если бы я всё это знал тогда, я бы точно взял ноутбук с 16гб ОЗУ, но, к сожалению, жизненные пути неисповедимы и я полтора года довольствовался 8гб ОЗУ и свопом размером иногда в 6-7 гигов
    На прошлой неделе на работе началось резкое увеличение штата, а это значит, что на меня ставится теперь больше задач, как по разработке, так теперь и по менеджменту, и успевать это всё надо в те же 8 часов, что и раньше
    В связи с этим всем наконец-то поменял ноут на такой же, но на 16 гигов. Придя домой поставил вообще всё что только в голову пришло и о чудо — у меня осталась свободная память и своп = 0
    Мораль: берите машину для разработки с запасом, даже если вы думаете, что в приниципе и так сойдёт. Я следующий ноут точно буду брать с дичайшим запасом — 64 ОЗУ и 2ТБ хранилища минимум, чтобы наверняка 😀 хотя, пожалуй, к тому моменту как я приду к этому решению это уже будет стандартом