Pull to refresh
9
0
Алексей Колесников @Daermor

User

Send message

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

Reading time22 min
Views205K

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

Reading time4 min
Views150K
image


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

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

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

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

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

Читать дальше →
Total votes 21: ↑14 and ↓7+7
Comments7

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

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

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

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

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

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

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

Reading time4 min
Views918K
Представляю вашему вниманию обзор и мои субъективные оценки некоторых специализированных способов обхода блокировок со стороны провайдеров или сетевых администраторов.

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


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

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

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

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

    Минусы:
        Требуется регистрация в сервисе
Читать дальше →
Total votes 123: ↑106 and ↓17+89
Comments115

Information

Rating
Does not participate
Location
Воронеж, Воронежская обл., Россия
Works in
Date of birth
Registered
Activity