Pull to refresh
0
0
adebt @adebt

User

Send message

Укрощая зверя: legacy-код, тесты и вы

Reading time10 min
Views8.8K
Legacy-код — это «старый» код, возраст которого может быть как 2 месяца, так и 10 лет. Часто его писали разработчики, о которых в компании смутно помнят. Возможно, их вообще не было, а legacy-код родился вместе со Вселенной во время Большого Взрыва. С тех пор требования к нему менялись много раз, код правили в режиме «нужно было еще вчера», а документацию никто не писал, как и тесты. Legacy-код запутан и хрупок, в нем не видно ни начала, ни конца. Как к нему подступиться?


Здесь и далее кадры из сериала «Рик и Морти». Авторы Джастин Ройланд и Дэн Хармон.

Подбираться к нему нужно с тестов, но готовьтесь к боли. Проблемы начнутся уже с того момента, как вы решите взяться за такой проект. Вам нужно понять, зачем вы хотите за него браться, убедить руководство одобрить тестирование legacy-кода, а коллег — помочь. После этого возникнут вопросы, с чего начать изучение, какие тесты запустить первыми и как все не сломать? Но главное — как не впасть в отчаяние, когда поймете, что работе нет конца.

Кирилл Борисов 12 лет в индустрии, за эти годы прошел долгий путь по костылям, битому коду и гниющим каркасам старых систем: от монолитных учетных систем до микросервисов авторизации. Путешествие наградило его опытом и историями, которыми он поделится в виде ценных советов.
Total votes 20: ↑20 and ↓0+20
Comments6

Как в одиночку запустить продукт, если вы разработчик: советы от создателя Laravel Тейлора Отвела. Часть 1: Аудитория

Reading time5 min
Views13K


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


Лучше брать пример с Тэйлора Отвела, который создавал Laravel в свободное от основной работы время. В ноябре он опубликовал мини-серию подкастов, в которой поразмыслил над успехом своих программных продуктов — за последние 5 лет они принесли ему больше 10 млн долларов. В четырех выпусках подкаста Тейлор поделился советами, которые затрагивают ряд тем от поиска идеи и формирования лояльной аудитории до сохранения мотивации и преданности качеству.


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

Итак, поехали.

Читать дальше →
Total votes 26: ↑24 and ↓2+32
Comments13

Гибридные сортировки

Reading time9 min
Views14K


Как все уже знают, в основу сортировки могут быть положены обмены, вставки, выбор, слияние и распределение.

Но если в алгоритме комбинируются разные методы, то тогда он относится к классу гибридных сортировок.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments2

Сортировка «Американский флаг»

Reading time7 min
Views16K

Чтобы понять принцип действия этой «многополосной» сортировки проще для начала разобраться на примере флага с тремя полосами. А чтобы легко разобраться с трёхцветным флагом, лучше сначала посмотреть, как это работает на примере двухцветного. А чтобы разобраться с двухцветным...
Траффик
Total votes 20: ↑18 and ↓2+28
Comments3

ServerLess PHP

Reading time12 min
Views10K

Накануне запуска курса «Backend-разработчик на PHP» мы провели традиционный открытый урок. В этот раз познакомились с концепцией Serverless, поговорили о её реализации в AWS, разобрали принципы работы, сборки и запуска, а также построили простой TG-бот на PHP на базе AWS Lambda.


Преподаватель — Александр Пряхин, технический директор компании Westwing Russia.




Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments8

Разбор задачи с собеседования Google: поиск соотношения

Reading time21 min
Views39K


Добро пожаловать в очередную из серии статей с разбором задачек, которые я задавал на собеседованиях в Google, прежде чем их запретили после утечки. С тех пор я оставил работу инженера-программиста в Google и перешёл на должность менеджера по разработке в Reddit, но у меня всё ещё осталось несколько замечательных тем. К настоящему моменту мы разобрали динамическое программирование, возведение матриц в степень и синонимичность запросов. На этот раз совершенно новый вопрос.
Читать дальше →
Total votes 47: ↑41 and ↓6+35
Comments73

Улучшаем профиль в LinkedIn перед поиском работы

Reading time3 min
Views119K
На момент написания статьи, в социальной сети LinkedIn размещено порядка 30 миллионов вакансий от 20 миллионов компаний по всему миру. Не удивительно, что 90% рекрутеров используют LinkedIn как один из основных ресурсов поиска кандидатов.

Правильно оформленный LinkedIn профиль поможет привлечь внимание рекрутеров к вашей кандидатуре. Совместно с командой экспертов по поиску работы за рубежом Relocate.me, мы подготовили короткий гайд по оптимизации профиля LinkedIn перед поиском работы.


Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments31

22 сайта для программиста, которые помогут заговорить на английском

Reading time3 min
Views127K
Хабр, привет!

Сделал подборку из 22-х сайтов для изучения английского языка.
Подборка поможет изучить английский легко, без зубрежки и учебников.

Приступим!

Учить лексику


Плагины, мобильные приложения и сайты, которые помогут перевести и запомнить незнакомые термины с русского на английский и обратно.

ЛеоПереводчик

С этим плагином удобно переписываться с коллегами. Он автоматически переводит непонятные слова и выражения. Незаменимый инструмент, когда нет времени на доскональные переводы и нужен срочный ответ.
Читать дальше →
Total votes 45: ↑39 and ↓6+33
Comments13

Настройка PHP-FPM: используем pm static для максимальной производительности

Reading time5 min
Views27K


Неотредактированная версия статьи была изначально опубликована на haydenjames.io и публикуется здесь с разрешения ее автора.


Я в двух словах расскажу, как лучше всего настроить PHP-FPM, чтобы увеличить пропускную способность, снизить задержку и более стабильно использовать процессорные ресурсы и память. По умолчанию строка PM (process manager, менеджер процессов) в PHP-FPM имеет значение dynamic, а если у вас не хватает памяти, то лучше установить ondemand. Давайте сравним 2 варианта управления на основе документации php.net и посмотрим, чем от них отличается мой любимый static pm для большого объема трафика:


pm = dynamic — количество дочерних процессов настраивается динамически на основе следующих директив: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
pm = ondemand — процессы создаются по требованию (в отличие от динамического создания, когда pm.start_servers запускаются при запуске сервиса).
pm = static — количество дочерних процессов фиксировано и указывается параметром pm.max_children.

Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments1

Unit тестирование в Laravel

Reading time7 min
Views41K

Я часто слышу среди обсуждений в сообществе мнение, что unit тестирование в Laravel неправильное, сложное, а сами тесты долгие и не дающие никакой пользы. Из-за этого эти тесты мало кто пишет, ограничиваясь лишь feature тестами, а польза unit тестов стремится к 0.
Я тоже так считал когда-то, но, однажды я задумался и спросил себя — может быть я не умею их готовить?


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

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments10

Падает зрение после лазерной коррекции зрения — что делать? Или, доктор, сделай мне «enhancement»

Reading time10 min
Views144K
Традиционно это самый частый вопрос для тех, кто уже сделал коррекцию и для тех, кто только планирует ее. Договоримся, что под словом «падает» будем подразумевать изменение оптики глаза – то есть увеличение «минуса», астигматизма или появление «плюса». Короче, когда опять нужны очки, чтобы хорошо видеть. Или линзы. Или опять коррекция, точнее докоррекция. Кстати, в англоязычной медицине этот термин гораздо приятнее звучит – «enhancement» — улучшение, совершенствование.

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

Итак, enhancement – это докоррекция. Всегда ли она возможна?

Многое зависит от того, каким методом вы первично сделали коррекцию, например, это был ReLEX SMILE, LASIK или кератотомия (насечки). Выбор улучшающей технологии будет отличаться в зависимости от хирурга – его рук и профессионального интеллекта, от типа и модели лазера, от ваших индивидуальных особенностей организма и т. п. Короче, для пациента как игра в «покер» — с полностью или частично закрытыми картами, в которой элементами всех разновидностей являются комбинации. О методах коррекции написано ЗДЕСЬ.

Методов много – даю навигацию по выбору необходимого. Вооружайтесь.

Падает зрение после лазерной коррекции
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments51

Астигматизм — способы коррекции

Reading time9 min
Views126K
Живете вы не печалитесь, смотрите на мир слегка прищуриваясь, и вдруг вам сообщают, что у вас астигматизм. Астигматизм – оптика глаза с неправильной фокусировкой, когда на сетчатке нет четкости из-за искажений в роговице или хрусталике глаза. Самостоятельно нельзя поставить такой диагноз – его обнаруживает офтальмолог. И возникает вопрос – что с ним делать? Надеть очки или контактные линзы, тренироваться с утра до ночи как рекомендует интернет или отдать себя в руки хирургов, чтобы «подправили» прицел?

А еще вариант – ничего не делать, продолжать жить как раньше, не болит же ничего.

Методы коррекции астигматизма

Важное правило – понять с каким отделом глаза связана эта оптическая проблема. От этого будет зависеть метод коррекции или лечения астигматизма.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments42

Астигматизм – зрение как в королевстве «кривых зеркал»

Reading time7 min
Views252K
Друзья, после некоторого перерыва мы возобновляем публикации о зрении и технологиях для его восстановления. Пауза была связана с моей загруженностью операциями и участием в конференциях: в ближайшее время опубликую обзор самых интересных технических новинок в офтальмологии, которые были на них представлены, а сегодня мы поговорим об астигматизме.

Что такое астигматизм

Современная статистика удручает. Более половины населения планеты страдает нарушением зрения, наиболее распространенными проблемами являются близорукость и дальнозоркость. Но офтальмологи часто диагностируют еще одно заболевание, название которого многим незнакомо. Астигматизм – дефект оптической системы глаза, когда резкость изображения ассиметрична по вертикали и горизонтали. И параллельные лучи света, проходящие через глаз, фокусируются не в точку, а в «восьмерку». Для человека это означает, что видимость изображения становится нерезкой, причем часто это касается как дальних, так и близких предметов. В результате вместо нормального изображения человек видит искаженное, в котором одни линии четкие, другие — размытые. Представление об этом можно получить, если посмотреть на свое искаженное отражение в овальной чайной ложке. Аналогичное искаженное изображение формируется при астигматизме на сетчатке глаза.

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

Однако, достаточно много людей нуждаются в специальном лечении или коррекции этого нарушения с помощью очков, контактных линз или даже операции.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments57

Лазерная коррекция зрения SMILE или «Почему мы делаем SMILE»

Reading time7 min
Views68K

Роговица после лазерного разреза

На сегодняшний день в интернет пространстве все чаще возникают дискуссии на тему: «Какой способ лазерной коррекции лучший?». Долгое время не хотелось вмешиваться в несущественную дискуссию, но, увидев очередные комментарии «крестоносцев против SMILE» из клиники, не имеющих технической возможности делать операции типа SMILE, все-таки не выдержала. Общаясь с коллегами из ФРГ во время одной из научных конференций услышала интересную фразу: «введение чего-то нового встречает конкуренцию по трём фазам развития:

  1. Не придается никакого внимания, ведь „всё равно ерунда“
  2. Активное нападение или отрицание конкурентного продукта – то, с чем мы сталкиваемся в интернетных постах
  3. Полный штиль, во время которого ведется разработка собственной продукции этого типа — так в своё время прореагировали компании Alcon и Schwindt, которые теперь сами разрабатывают технологию SMILE.

Видимо такого рода погрешности встречаются не только у коммерческих компаний, но и у отдельных российских хирургов.
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments35

Большой FAQ про разные виды коррекции зрения: все вопросы гиков в одном месте

Reading time29 min
Views179K
Ниже – прямое сравнение видов коррекции (операций) с удобной сводкой по возможным осложнениям и применимости, плюс море других вопросов от профессиональных параноиков: от «что будет, если махнуть головой во время операции» до «а отдадут ли мне ткань, которую вынули из моего глаза» и «что будет в старости с моим зрением».

– Что лучше: очки, линзы или лазерная коррекция?

Если вас полностью устраивают очки – сохраняйте спокойствие, коррекцию делать не нужно. Однако, если вы никогда не пробовали линзы, то стоит попробовать поносить их пару недель, чтобы понять, как мир будет выглядеть после коррекции. В 10-летней перспективе контактные линзы (даже однодневные) существенно опаснее коррекции по обратимым и необратимым побочным эффектам и осложнениям. Поэтому я рекомендую их только для ознакомления с дивным новым миром.

– Я решил остановиться на очках, но боюсь, что мне в лицо откроется подушка автомобиля и они станут контактными линзами. Что делать?

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

Если вы видите плохо и не надеваете очки, то вы теряете часть информации об окружающем мире и при этом создаёте дополнительную нагрузку на зрительный аппарат. Есть проблема – нужна оптическая коррекция. А испортить глаза очками можно, как один из наших коллег из клиники в г. Марбурге – он уснул в стеклянных очках за компьютером дома, упал лицом на клавиатуру, и осколок стекла вошёл в хрусталик. В итоге сначала заменили хрусталик, потом через год понадобилась трансплантация.
Читать дальше →
Total votes 57: ↑55 and ↓2+53
Comments91

Кератоэктазия (кератоконус, «выпуклая роговица»): что это и что с этим делать

Reading time8 min
Views44K

Бывает так, что начинает человек видеть вдаль плохо, идёт в оптику или поликлинику, узнаёт, что у него близорукость или астигматизм (а может, и то и другое одновременно), надевает выписанные очки или линзы, пользуется ими какое-то время. Тем временем зрение продолжает ухудшаться. Наступает день, когда человек попадает к офтальмологу в специализированную клинику, иногда даже с целью сделать лазерную коррекцию зрения, и тут его ждёт неприятный сюрприз: он узнаёт, что у него кератоконус. И хорошо, если это скрытая или ранняя стадия заболевания — в этом случае есть шанс сохранить зрение и собственную роговицу. Если это развитой процесс — речь пойдёт о хирургическом лечении.

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

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

Откуда берётся астигматизм? Дело в том, что выступающая роговица меняет свойства «системы линз» глаза, и новая «передняя линза» не соответствует проекции зрачка. Роговица с астигматизмом неровная, но регулярно-неровная, симметрично-неровная. При диагностическом сканировании видна характерная «бабочка».
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments23

FAQ про лазерную коррекцию ReLEx SMILE: да, в России есть, но нет, в России нет

Reading time9 min
Views63K


— Делают ли в России малоинвазивные операции по лазерной коррекции зрения методом извлечения лентикулы (Small Incision Lenticule Extraction)?

Да, примерно уже 5 лет. С каждым годом всё больше и больше на конференциях офтальмологов возникают вопросы не уровня «Что это?», а конкретные практические по нюансам технологии. Лазеры VisuMax есть в нескольких клиниках России, но именно под ReLEx SMILE используются значительно меньше, чем под femtoLASIK. Исторически так сложилось в России, что эта технология мало используется в центральной части и активно используется за Уралом.

— Что за история с лицензиями на конкретные операции?

Цейс продаёт конусы вместе с лицензиями. Конус — сменная деталь, прилегающая к глазу, покупается вместе с лицензией на использование лазерной процедуры, обычно пакетами по 10 или 100 операций. Поступает, например, 10 конусов и 10 лицензий. Лицензии вбиваются через меню лазера, и он позволяет по разу использовать соответствующие конусы для соответствующих типов программы. Лицензии на SMILE отдельно, на femtoLASIK отдельно, на FLEX, кольца и докоррекции также отдельные лицензии. У большинства производителей фемтосекундных и некоторых эксимерных лазеров похожая ситуация. Не нужны лицензии на эксимерные операции, пожалуй, разве на моделях примерно 5-летней давности и старше.

— И можно не получить такую лицензию на SMILE?

Запросто. Во-первых, этот модуль в лазере стоит как дорогостоящая опция, так что сам прибор без опции SMILE стоит дешевле. Во-вторых, если эта опция имеется, то лицензии на проведение операции ReLEx SMILE возможно приобрести только после проведения 5–10 тестовых прогонов на свиных глазах, затем проведения минимум 10 операций femtoLASIK на пациентах, затем 50 операций FLEX, и только после этого можно будет купить лицензию на SMILE для конкретного хирурга.
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments90

Ещё пара неочевидных вещей, которые вам могут не рассказать до лазерной коррекции зрения

Reading time13 min
Views159K

Сегодня без «жести», как вы просили

Уже есть пост про то, как лазер режет с помощью создания миллионов кавитационных пузырей в слое роговицы глаза, и разбор телеметрии с реальной операции по секундам с комментариями действий хирурга. И ещё история операций. Вы задали очень много вопросов. Теперь FAQ про разные сопутствующие вещи.

— Если я посмотрю в сторону во время работы лазера, что случится?

У вас попросту не выйдет. На самом деле сразу после обезболивания глаз прижимается к специальному пневмозахвату. Моргнуть у вас тоже не выйдет из-за фиксации (это небольно и недолго). Единственный момент, где можно серьёзно нарушить ход операции — это сильно дёрнуть головой, серьёзным волевым усилием вытащив её из подголовника. В этом случае операция мгновенно прекратится. Точнее, она прекратится даже до потери захвата (детали ниже).

— Как должна быть подготовлена операционная?

В целом — как обычная операционная, то есть это помещение с чистой зоной (фильтрация воздуха, избыточное давление для предотвращения загрязнений извне после очистки). Для процедуры важно, чтобы между линзой лазера и глазом не попадали микрочастицы пыли, летающие в воздухе.
Читать дальше →
Total votes 107: ↑107 and ↓0+107
Comments220

Телеметрия с лазера для коррекции зрения: полная операция с комментариями (не для слабонервных)

Reading time5 min
Views91K
Сейчас я буду показывать то, что обычно врачи никогда не показывают пациентам. Точнее, показывается это всё в виде красивого рендера, из которого никак не следует, что прямо в вашей роговице будет пару минут торчать железка. К счастью, вы этого не почувствуете из-за обезболивающей премедикации, не узнаете и не запомните, потому что железка будет не в фокусе.


Введение шпателя для рассекания оставшихся тканевых мостков в разрез роговицы после лазерной обработки, но до извлечения лентикулы

Поехали. Итак, смотрите видео, а я покажу стопкадры с комментариями. Это реальная операция на пациенте в немецкой клинике, запись сделана на устройство вроде «чёрного ящика» аппарата VisuMAX. В данном случае пациент дал согласие на использование записи для учебных целей, обычно доступ к таким записям строжайше ограничен.
Total votes 105: ↑101 and ↓4+97
Comments171

Лазер, который режет внутри роговицы: процедура ReLEх на физическом уровне

Reading time6 min
Views77K

Кадр из телеметрии ReLEx — внутри глаза за примерно 4 миллиона лазерных импульсов вырезана линза-лентикула, она удаляется через 2,5-миллиметровый разрез у края, касающийся поверхности. Сегодня поговорим о лазере, который это делает.

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

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


Шаг 1: создание пузырька плазмы, фактически — микровзрыв. Шаг 2: расширение ударной и тепловой волны. Шаг 3: кавитационный пузырь (расширение плазмы). Шаг 4: формирование параллельного среза за счёт нескольких рядом расположенных точек фокусировки лазера

Сегодня один «микровзрыв» длится не 4 наносекунды, а в 10.000 раз быстрее.
Читать дальше →
Total votes 104: ↑103 and ↓1+102
Comments222
1
23 ...

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity