Время на прочтение: 8 минут(ы)

Итак, вы внимательно прочитали книжку «Рефакторинг» Фаулера и думали, что уж теперь то вы готовы к этому делу и вообще — гуру вопроса. У вас выросла самооценка и количество понтов на собеседованиях. А потом вам попадается проект, которому реально нужен рефакторинг и вы понимаете, что нихрена не понимаете. Самооценка сдувается, вы уходите в запой и после долгих мучений и возгласов о том, какой мудак это писал, вы идете к начальству и говорите что-то типа «Ну ево нахрен, там уже ничего не поправишь — там переписывать надо». Именно поэтому, как мне кажется, в реальности 99% инициатив по рефакторингу более-менее объемной кодовой базы заканчивается банальным переписыванием. Почему переписывание — это ни разу не рефакторинг я уже писал вот тут, так что будем честны — с задачей вы не справились. Поздравляю, добро пожаловать в реальный мир к нам, неудачникам.

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

Читать полностью »
Время на прочтение: 6 минут(ы)

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

Читать полностью »
Время на прочтение: 4 минут(ы)

Любой программист наверняка слышал про бестселлер одного из нашихвсё Фаулера под названием «Рефакторинг». В свое время книга стала прорывом для многих и, собственно, открыла массам программистов само понятие рефакторинга. И до сих пор многими считается, что «кто Фаулера не читал — не достоин называть программистом».

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

Читать полностью »
Время на прочтение: < 1 минут(ы)

Хорошая память иногда помогает заметить ПРЕКРАСНОЕ.

Читать полностью »
Время на прочтение: 35 минут(ы)

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

Я готовился съебывать. Из дома, где задержался на семь лет больше, чем планировал во времена наивной юности. Из страны, в которой люди с моим разрезом глаз периодически слышали добрые советы про «чемодан — вокзал — Россия». Из комнаты, в которой просидел практически безвылазно последние пять лет. В конце концов от родителей, которые даже не расстроились, узнав, что сын с бухты-барахты решил уехать в другую страну, а были рады, что наконец закончатся мои пятилетние попытки срастись жопой со стулом.

Но главное — я съебывал от своего пет-проджекта, с которым меня связывали самые длительные отношения за всю жизнь, который потенциально мог меня озолотить, но в итоге только сожрал пять лет жизни и кучу нервов. Хитрость плана с переездом в другую страну на неподготовленную почву заключалась в том, что там придется найти нормальную работу, вместо ленивого редкого фриланса, чтобы как минимум снимать квартиру. А это значило, что тратить много времени на пет-проджект я не смогу. И наконец перестану насиловать этот труп.

Но начиналось всё гораздо оптимистичнее

Читать полностью »
Время на прочтение: 6 минут(ы)

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

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

Умпутун, будучи действующим бэкендщиком, искренне и громко недоумевал, на кой хер ему это знать, если в компании есть фронтендщики и фронтом занимаются, собственно, они. На что Бобук, будучи разработчиком в прошлом и менеджером в настоящем, возражал ему, мол, Дед, ты не прав. Вот смотри, говорил он, если ты будешь знать, как работают фронтовые фреймворки, ты будешь лучше понимать, какой бекендный api будет удобнее для фронта. А на хера мне мне понимать, какой api удобней для фронта — недоумевал Умпутун — если фронтендщик может мне это просто сказать? Ээээ, не скажи — отвечал ему Бобук — далеко не всегда фронтендщик может что-то сказать бекендщику, есть такие бекендщики, которые давно сидят в конторе, обладают авторитетом и всех нахрен посылают. Или фронтендщик может просто стесняться. В общем, учи фронтовые фреймворки, Умпутун, не может фронтендщик сам сказать.

Читать полностью »
Время на прочтение: < 1 минут(ы)

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

Если любите обсасывание одних и тех же тем из года в год — грейды/зарплаты/нужна ли вышка/иммиграция.

Если любите долбаные интервью с людьми, которым в общем-то и сказать нечего, от людей, которым ничего спросить.

Если любите наших местных примелькавшихся айти звездочек, которые тоже ничего интересного сказать не могут, И ЭТО ДАВНО ПОНЯТНО ПО КУЧЕ ДРУГИХ ИХ ИНТЕРВЬЮ.

Тогда можно слушать любые it подкасты на русском — они все об этом и все похожи.

Время на прочтение: 3 минут(ы)

Сегодня, дорогие детишки, мы поговорим о вещи, которая кажется просто необъяснимой магией многим, кто не понимает, как оно работает. Сермяжная практика показывает, что почти никто из разработчиков на mysql не знает про этот нюанс, при этом налететь на него — проще простого.

Давайте рассмотрим на примере кейса. Есть табличка innodb:

id int(11) not null autoincrement PRIMARY KEY
title varchar(255)
description text
foreign_id varchar(100)

Также есть вторичный индекс на foreign_id, помимо первичного на id.

И при выполнении запроса типа select * from tbl where foreign_id = 123; БД никогда не будет использовать индекс, хоть ты тресни. И всегда будет фулскан.

ТА-ДА!

Если вы не владеете этой уличной магией, то го под кат, батя сегодня угощает.

Читать полностью »
  • Комментариев нет
  • Метки:
Время на прочтение: 5 минут(ы)

(Спойлер: как обычно — это бабло)

Давайте-ка поговорим об одной из самых фундаментальный проблем Свободного программного обеспечения, которую заложил ещё Столлман на заре создания концепции и которая, я уверен, является немалой частью того рака, который убивает СПО.

Читать полностью »
Время на прочтение: 3 минут(ы)

… заключается в том, что почти никто не знает, чем микросервисы отличаются от сервис-ориентированной архитектуры. К этой же проблеме можно отнести крайне уморительные дискуссии о том, при каком размере сервисы можно начинать называть «микро» (ох уж эта озабоченность размерами у программистов)

А между тем всё очень просто

Читать полностью »

Мои проекты

1. Словарь сленга Slanger.ru