Для начала немного обо мне: я и практикующий дантист, и разработчик ПО. Со вторника по четверг я пишу код, а с пятницы по воскресенье принимаю пациентов. До того, как стать дантистом, я работал в таких компаниях, как Allstate Insurance, Lockheed Martin и ICS. Освоив обе эти профессии, я заметил, что разработчики ПО могут многому научиться у дантистов и наоборот. Я решил записать эти уроки в надежде, что они кому-то могут помочь. Это просто общие рекомендации — не стоит рассчитывать, что они идеально подходят для любой ситуации.Читать полностью »
Рубрика «легаси»
Чему разработчики ПО могут научиться у стоматологов
2024-03-25 в 13:16, admin, рубрики: ruvds_переводы, легаси, лечение зубов, отладка, разработка, совещанияДля начала немного обо мне: я и практикующий дантист, и разработчик ПО. Со вторника по четверг я пишу код, а с пятницы по воскресенье принимаю пациентов. До того, как стать дантистом, я работал в таких компаниях, как Allstate Insurance, Lockheed Martin и ICS. Освоив обе эти профессии, я заметил, что разработчики ПО могут многому научиться у дантистов и наоборот. Я решил записать эти уроки в надежде, что они кому-то могут помочь. Это просто общие рекомендации — не стоит рассчитывать, что они идеально подходят для любой ситуации.Читать полностью »
Семафоры в Linux медленно сходят со сцены
2023-04-26 в 21:36, admin, рубрики: легаси, мьютексы, Программирование, Процессоры, Разработка под Linux, семафоры, ядроС годами подходы к обработке конкурентности в ядре Linux сильно изменились. К 2023 году в арсенале разработчиков ядра появились, в частности, автозавершения, хорошо оптимизированные мьютексы, а также россыпь неблокирующих алгоритмов. Но были времена, когда управление конкурентностью сводилось к использованию обычных семафоров. Дискуссия о внесении небольшого изменения в API семафоров лишний раз свидетельствует, как сильно они изменились за долгую историю ядра.
Толстые слои легаси: как запускаются современные процессоры Intel
2023-04-20 в 8:16, admin, рубрики: 80386, 8086, x86, x86-64, Компьютерное железо, легаси, микрокод, Настольные компьютеры, Процессоры, процессоры intelЦентральные процессоры (CPU) не могут ничего сделать, пока им не скажут, что делать. Возникает очевидная проблема — как вообще заставить CPU что-то делать? Во многих CPU эта задача решается при помощи вектора сброса — жёстко прописанного в CPU адреса, из которого нужно начинать считывать команды при подаче питания. Адрес, на который указывает вектор сброса, обычно представляет собой какую-нибудь ROM или флэш-память, которую CPU может считать, даже если никакое другое оборудование ещё не сконфигурировано. Это позволяет производителю системы создавать код, который будет исполнен сразу же после включения питания, сконфигурирует всё остальное оборудование и постепенно переведёт систему в состояние, при котором она сможет выполнять пользовательский код.
Конкретная реализация вектора сброса в системах x86 со временем менялась, но, по сути, это всегда были 16 байтов ниже верхушки адресного пространства, то есть 0xffff0 на 20-битном 8086, 0xfffff0 на 24-битном 80286 и 0xfffffff0 на 32-битном 80386. По стандарту в системах x86 ОЗУ начинается с адреса 0, поэтому верхушку адресного пространства можно использовать для размещения вектора сброса с минимальной вероятностью конфликта с ОЗУ.
Читать полностью »
Как портят софт ради обратной совместимости
2022-11-15 в 9:00, admin, рубрики: Assessment and Deployment Kit, Compatibility Administrator, linux, ruvds_статьи, SimCity, software lifecycle, Windows 95, Windows ADK, Блог компании RUVDS.com, легаси, обратная совместимость, преждевременная оптимизация, Программирование, Проектирование и рефакторинг, рефакторинг, Софт, технический долг«Ожирение софта» — известная беда современной разработки. Повышение производительности железа зачастую воспринимается менеджерами как возможность игнорировать рефакторинг, всё равно никто не заметит тормозов. Проще докупить железа, чем тратить время на оптимизацию.
Но есть ещё одна серьёзная причина, по которой ожирение софта и тормоза увеличиваются с каждой версией — это легаси. Накопление старого балласта ради сохранения обратной совместимости. Хуже того, иногда происходят поистине вопиющие случаи, когда баги умышленно вводят в кодовую базу, чтобы сохранить совместимость со старыми программами.
Читать полностью »
Как мы себя обманываем, только бы продолжать пользоваться Golang
2022-07-14 в 13:04, admin, рубрики: Go, Rust, высокая производительность, Исследования и прогнозы в IT, легаси, Программирование, Разработка под Linux, языкиЗа два года с тех пор, как я опубликовал статью I want off Mr Golang's Wild Ride, она вновь и вновь всплывала на Reddit, Lobste.rs, на HackerNews и в других местах.
Всякий раз дискуссия выходит к одним и тем же ответам:
-
Вы говорите о Windows: а ведь как раз с Windows язык Go не слишком хорош! (Опять же, кого это волнует?)
-
Вы однобоки: о сильных сторонах Go вы не говорите!
-
Вы не понимаете тех компромиссов, на которые мы идем в Go.
-
Крупные компании используют Go, значит, не так уж он и плох!
PHP 8 Programming Tips, Tricks and Best Practices — обзор книги и рекомендации
2021-10-10 в 11:03, admin, рубрики: jit, php, xdebug, легаси, Профессиональная литератураБуквально месяц тому назад вышла книга: "PHP 8 Programming Tips, Tricks and Best Practices" от Дуг Бирера (Doug Bierer). В этой книге автор делает обзор php 8.0, объясняет его нововведения и описывает потенциальные ошибки перехода со старых версий на php 8.0.
В этом обзоре я кратко пройдусь по содержании книги и выскажу свое мнение об плюсах и минусах книги, а так же оставлю рекомендации для кого подойдет эта книга.
Языки любимые и языки страшные. Зелёные пастбища и коричневые поля
2021-05-07 в 10:17, admin, рубрики: Go, haskell, ITSumma. языки программирования, Julia, kotlin, Rust, scala, Блог компании ITSumma, зелёные пастбища, легаси, поддержка старого кода, Программирование, Проектирование и рефакторинг, рефакторинг, Статистика в IT
Результаты опроса Stack Overflow являются отличным источником информации о том, что происходит в мире разработки. Я просматривал результаты 2020 года в поисках некоторых идей, какие языки добавить в нашу документацию по контейнерным сборкам, и заметил кое-что интересное о типах языков. Мне кажется, это не часто встречается в различных дискуссиях о предпочтениях разработчиков.
В опросах есть категории «Самые страшные языки программирования» (The Most Dreaded Programming Languages) и «Самые любимые языки». Оба рейтинга составлены на основе одного вопроса:
На каких языках вы провели обширную работу по разработке за последний год, и на каких хотите работать в следующем году? (Если вы работаете с определённым языком и намерены продолжать это делать, пожалуйста, установите оба флажка).
Пришло время переосмыслить безопасность OpenBSD
2020-04-01 в 11:12, admin, рубрики: FTP, ld.so, libc auth, miran, netbsd, open source, OpenBSD, smtpd, Блог компании Дата-центр «Миран», информационная безопасность, легаси, Проектирование и рефакторинг, системное программирование, уязвимостиOpenBSD позиционируетcя как защищённая ОС. Однако за последние несколько месяцев в системе найден ряд уязвимостей. Конечно, в этом нет ничего экстраординарного. Хотя некоторые уязвимости довольно необычные. Можно даже сказать, критические. У разработчиков OpenBSD несколько принципов, как обеспечить безопасность. Вот два из них:
- избегать ошибок;
- минимизировать риск ошибок.
Не все согласны, что этих принципов достаточно, чтобы строить защищённые системы. Мне кажется, есть смысл изучить, работает ли подход OpenBSD, или он изначально обречён.
Для иллюстрации я выбрал не все, а только несколько интересных багов, которые случайно совпадают с темой нашего разговора.
Читать полностью »
Без управления знаниями больно: 5 основных последствий отсутствия системы
2020-03-16 в 10:03, admin, рубрики: knowledgeconf, legacy, legacy code, автобусный фактор, Блог компании Конференции Олега Бунина (Онтико), велосипеды, конференции, легаси, найм разработчиков, управление знаниями, управление персоналом, управление проектами, управление разработкойToyota — мировой лидер автомобилестроения, один из самых дорогих автомобильных брендов и синоним слова «качество». Toyota известна своей сложной производственной системой, благодаря которой она стала мировым лидером. На её описание потребовалось 10 лет и 20 версий, в итоге появился документ «Философия Toyota 2001». Часть принципов из этой книги — кайдзен и канбан — используются в IT. Но эти принципы лишь часть системы постоянного обучения и непрерывного совершенствования, которая плотно интегрирована во все процессы корпорации.
В системе обучения много разных принципов и техник. Например, перед разработкой новой модели инженеры Toyota изучают передовые разработки поставщиков и технологии конкурентов: разбирают их автомобили, изучают и фиксируют удачные технические решения. При этом обучаются не только инженеры, но и вся компания. Для этого используются контрольные листки, матрицы качества, ретроспективы, таблицы навыков, базы данных стандартов и всех прошлых проектов. Всё это помогают сохранять и систематизировать знания, расти, обучаться и выпускать качественные продукты. Другими словами, в Toyota реализована почти идеальная система управления знаниями. Поэтому они лидеры.
История Toyota — отличный пример управления знаниями. Но что будет, если знаниями не управлять, а систему не выстраивать? Велосипеды, сломанные конвейеры, автобусы, «сжигание» денег на онбординге и legacy — все это случается с компаниями, когда они не задумываются об управлении знаниями.
Читать полностью »
Что делать с легаси. Материалы с Badoo PHP Meetup #4
2020-02-21 в 13:08, admin, рубрики: badoo, badootech, legacy, meetup, php, Блог компании Badoo, конференции, легаси, митап, Программирование, Управление сообществомВсем привет!
15 февраля в офисе Badoo прошла очередная встреча PHP-разработчиков, посвященная теме легаси. Целый день мы слушали рассказы об опыте крупных компаний, общались и делились болью.
Получилось рассмотреть проблему с нескольких сторон:
- организация процессов разработки по избавлению от легаси;
- тактика распила легаси-монолита на микросервисы;
- способы организации API, которые позволяют держать под контролем рост устаревшего кода;
- автоматические способы обнаружения «мёртвого» кода;
- а еще попробовали поговорить как рефакторить легаси-код с помощью DDD подходов;
Под катом делюсь видео и слайдами с этой встречи. Конечно, очень много ценного осталось в кулуарах и не вошло в отчет, так что приходите в нашу уютную группу поболтать о тяжелой жизни пэхэпэшника, обсудить доклады или просто за советом :)