Как стать автором
Обновить
9
0
Алексей Колесников @Daermor

Пользователь

Отправить сообщение

Что такое красивый код, и как его писать?

Время на прочтение22 мин
Количество просмотров205K

1. Вступление


Сталкиваясь с необходимостью контролировать работу других программистов, начинаешь понимать, что, помимо вещей, которым люди учатся достаточно легко и быстро, находятся проблемы, для устранения которых требуется существенное время.

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

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

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

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

Да, все это необходимо знать. Но при этом, понимание того, как должен выглядеть достойный код, обычно появляется уже при наличии практического (чаще в той или иной степени негативного) опыта за плечами. И при условии, что жизнь “потыкала” тебя не только в сочные образцы плохого кода, но и в примеры всерьез достойные подражания.

В этом-то и заключается вся сложность: твое представление о “достойном” и “красивом” коде полностью основано на личном многолетнем опыте. Попробуй теперь передать это представление в сжатые сроки человеку с совсем другим опытом или даже вовсе без него.

Но если для нас действительно важно качество кода, который пишут люди, работающие вместе с нами, то попробовать все же стоит!
Читать дальше →
Всего голосов 97: ↑79 и ↓18+61
Комментарии145

Опасности обучения на Java

Время на прочтение10 мин
Количество просмотров168K
«Вы счастливчики. Мы по три месяца жили в мешках из дерюги в грязных сараях. Мы вставали в шесть утра, стирали мешки, съедали по корке чёрствого хлеба и шли работать на мельницу, по 14 часов в день, с понедельника и до воскресенья, и когда мы возвращались домой, наш папа порол нас своим ремнем»
— Летающий цирк Монти Пайтона, Четыре йоркширца


Ленивая молодёжь.

Что может быть хорошего в тяжёлой работе?

Верный признак моего старения — моё ворчание и жалобы о «современной молодёжи» и о том, как не хотят или не могут больше делать ничего сложного.
Читать дальше →
Всего голосов 186: ↑152 и ↓34+118
Комментарии259

+1 к эволюции фрилансера

Время на прочтение4 мин
Количество просмотров150K
image


Собрал небольшой список пунктов эволюции фрилансера, каждый +1 сделает вас продуктивнее или дороже на рынке.
Список взят из моей жизни, я уже как год практикующий фрилансер, до этого никогда не покидал России, за последний год посетил 9 стран, в следующем году надеюсь посетить ещё 20.

1) Никогда ничего не забывайте. Для этого каждую мелкую задачу я всегда добавляю в miniplan.ru и я всегда получу в нужный момент письмо или смску, все совершенно бесплатно.
2) Самоосознание. Когда работаешь без прямого начальника, когда зарплата не два/раз в месяц, нужно максимально осознать свою жизнь, понимать как вы работаете, как вы получаете деньги, забиваете ли вы на работу, к чему стремитесь. Если в обычной жизни можно плыть по течению то фриланс вам приоткрывает двери осознанной жизни.
3) Отдыхайте. Работодателя нет и вы сами должны заботиться о своем отпуске, сделайте так чтобы его было больше, чем если бы вы работали по прямому найму. Не забывайте о перерывах в работе. Отдых сделает вас продуктивнее или абсолютно расслабит и тут вам поможет самоосознание.
Читать дальше →
Всего голосов 135: ↑108 и ↓27+81
Комментарии140

(Э/И)ммиграция в Германию, часть 2: Учиться никогда не поздно!!!

Время на прочтение10 мин
Количество просмотров17K
Написав 3 экзамена за последние 2 дня, я наконец то могу немного передохнуть сегодня вечером и дописать так уже давно обещанную вторую часть статьи (начало здесь) про Германию. Третья часть выйдет скорее всего уже ближе к концу сентября, после еще трех экзаменов.

Итак, рассмотрев в предудыщей статье разные варианты иммиграции в Германию, остановимся в этот раз более подробно на учебной иммиграции — пусть даже кратковременной, с целью «мир посмотреть и себя показать».

Читать дальше →
Всего голосов 21: ↑14 и ↓7+7
Комментарии7

Техника Помидора по-русски

Время на прочтение1 мин
Количество просмотров93K
Изучая на Хабре различные GTD подходы, натолкнулся на Технику Помидора (название зацепило). Прочитав методику, мне она показалась достаточно занимательной. Есть варианты на итальянском, английском, китайском, а на русском нет — я подумал, что было бы неплохо иметь русский перевод, и не найдя его решил перевести сам.

Техника Помидора — методика управления временем, предложенная Франческо Цирилло в конце 1980-х. Техника предполагает разбиение задач на 30-минутные периоды, называемые «Помидоры» (25 минут — работа, 5 минут — перерыв). Каждые 4 Помидора — длинный перерыв. Т.е. если совсем кратко: заводишь кухонный таймер и работаешь без перерыва 25 минут. После звонка — ставишь в табличке напротив конкретного дела над которым работал крестик, передышка 5 минут — и стартуешь очередной Помидор. Если тебя что-то отвлекает — не начинаешь над этим думать или делать, а записываешь «на потом» — и после, во время перерыва, например, уже думаешь, что с этим делать.

Для программистов, боюсь, техника не сильно подходит (т.к. поток), но для тех, кому приходится сталкиваться с большим количеством «отвлеканий», может подойти (идеально для учащихся).

В процессе перевода натолкнулся на то, что некоторые вещи непросто перевести — например interruption. Перевести просто как прерывание — наверное, неправильно, притом, что такое слово может вызвать у хабрааудитории совсем другие ассоциации из мира ПО. Поэтому решил наименовать это отвлеканиями. Хоть и нет в русском языке такого слова, но в данном конкретном контексте мне показалось перевести так наиболее близким по смыслу.

В целом, замечания и комментарии приветствуются.
Смотреть PDF на slideshare
Всего голосов 33: ↑19 и ↓14+5
Комментарии26

Обзор специализированных способов обхода блокировок в интернете

Время на прочтение4 мин
Количество просмотров918K
Представляю вашему вниманию обзор и мои субъективные оценки некоторых специализированных способов обхода блокировок со стороны провайдеров или сетевых администраторов.

1. Аддоны для браузеров


ZenMate (Chromium-based, Firefox, Android, iOS)

  • Удобство использования: 5/5
  • Скорость: 5/5
  • Шифрование трафика: Да (TLS)
  • Анонимность: Да
  • Проксирование всего трафика: Да
  • Выборочное проксирование: Да

    Описание:
        Хороший, быстрый аддон.
        На момент тестирования было доступно 5 прокси в разных странах.

    Плюсы:
        Высокая скорость работы аддона
        Быстрые прокси

    Минусы:
        Требуется регистрация в сервисе
Читать дальше →
Всего голосов 123: ↑106 и ↓17+89
Комментарии115

Информация

В рейтинге
Не участвует
Откуда
Воронеж, Воронежская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность