Обновить
137.9

Качество кода *

Как Макконнелл завещал

Сначала показывать
Порог рейтинга
Уровень сложности

IT-2025: Реквием по здравому смыслу

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели16K

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

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

Читать далее

Новости

Проектирование в условиях нестабильности: практика

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.2K

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

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

Читать далее

Безопасность кода: почему это должно волновать разработчика с первой строки и до релиза?

Время на прочтение11 мин
Охват и читатели7.3K

Вы допилили очередной модуль для своего проекта. Код исправлен, логика работает как часы, все тесты и сборки зелёные. Жмёшь запуск – всё летает. Кажется, что задача в кармане, можно расслабиться и идти отдыхать.

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

Читать далее

Теги структур — худшее что есть в go

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели15K

Всем доброе время суток. Я пишу всякое на Go в Ви.Tech (IT-дочка ВсеИнструменты.ру) и, честно говоря, обожаю этот язык. Когда говорят о проблемах Go, обычно вспоминают отсутствие наследования или своеобразную обработку ошибок. Гораздо реже речь заходит о том, что, на мой взгляд, действительно можно отнести к проблемам.

Читать далее

Внедрение архитектуры: от хаоса к порядку

Время на прочтение7 мин
Охват и читатели8.1K

Всем привет! Меня зовут Анатолий, я представляю команду Front-End разработки компании DD Planet.

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

Читать далее

10% на LLM и 90% на инженерию: как российские компании используют ИИ

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели7.6K

Привет, Хабр!

Продолжаю делиться материалами живых дискуссий, которые идут на телеграм-канале Dev Q&A. На этот раз тема — выбор между open source и коммерческими LLM для корпоративных задач. Обсудили главные болевые точки: почему почти все корпоративные заказчики требуют он-прем, как узкоспециализированные модели обходят универсальные решения, насколько реален GPU-дефицит для практических задач.

Читать далее

Применение ИИ в бэкенд-разработке приложения Бургер Кинг: шаблоны, контекст и кодогенерация

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели4.5K

Всем привет! Меня зовут Щепетков Константин, я TechLead бэкенд разработки компании ZeBrains, работаю в роли TeamLead бэкенда на проекте мобильного приложения Бургер Кинг.

Почти год назад мы запустили полную переработку бэкенда: распиливаем монолит на множество сервисов, всё пишем с нуля. Работы много, сроки плотные — классика.

Чтобы ускорить разработку, решил в качестве эксперимента делегировать часть задач ИИ-инструментам. Негативных кейсов поначалу было много, но со временем качество результата заметно выросло.

В статье делюсь, как давать ИИ чёткие задачи, чтобы он писал рабочий код, соответствующий архитектуре, а не выдумки. Рассказываю про workflow, контекст, шаблоны и кодогенерацию — всё, что превращает ИИ из рискованной игрушки в полезный инструмент для бэкенда. В конце статьи будет ссылка на пример подобных практик.

Тут не будет инструкций к конкретным ИИ-иструментам, но при этом поделюсь практическим опытом применения ИИ. Статья будет полезна не только бэкенд‑разработчикам, но и всем, кто хочет использовать ИИ-инструменты осознанно.

Читать далее

Программист в вакууме

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели7.3K

Привет Хаброчитатели!

Все-таки написать статью без технической части дело достаточно творческое. Тут я попробую донести какие-то свои мысли по поводу ИТ в целом и своего 10 летнего опыта в частности, пока у меня есть вдохновение. Поведаю вам в каких профессиональных вакуумах я побывал. Может кто-то найдет мои мысли интересными. Вы тоже от слова вакуум представляете что-то космическое?

Читать далее

Ловушки PowerShell: поведение, которое ломает привычные ожидания разработчиков

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели9.9K

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

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

Читать далее

Эдсгер Дейкстра «О вреде оператора go to»

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.8K

Публикуем новый полный перевод хрестоматийной статьи Эдсгера Дейкстры. Этот текст, опубликованный в 1968 году в журнале Communications of the ACM в формате письма в редакцию, заложил основы структурного программирования, впервые строго аргументировав отказ от оператора go to в пользу использования циклов и условных конструкций.

Читать далее

Большой куш Сбера – громкие заголовки на чужом коде

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели25K

Привет, Хабр!

Поведаю историю, неизвестную почти никому, но от того не менее занимательную.

Истории почти год, и сейчас я уже давно не работаю в компании, в которой работал тогда – поэтому считаю себя свободным от всяких аффилиаций и вправе написать эту статью в том виде, в котором считаю нужным.

Читать далее

Измерение сложности модели — Часть 3: Представляем Complexity Analyzer

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.6K

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

Читать далее

Проектирование в условиях нестабильности: от функционального хаоса к архитектурной устойчивости

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.6K

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

Читать далее

Ближайшие события

Fluent API. Часть 3 — что нам стоит Fluent API построить?

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели4.4K

Теперь, после того как в предыдущей статье так красочно описаны преимущества Fluent API появилось опасение что все  эти “плюшки” просто не могут быть бесплатными. Наверняка это очень дорого, или нет?

Читать далее

Fluent API. Часть 2 — а оно нам надо?

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели3.8K

Продолжаем разговор о Fluent API. И теперь, после того как мы из предыдущей статьи (или/и личного опыта) узнали о том что это чудо из себя представляет давайте разберемся зачем оно нужно?

Читать далее

Fluent API. Часть 1 — это вообще о чём?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели4.9K

В то время как аналитики жарко спорят на тему станет ли основным языком программирования 6-го (видимо) поколения английский или все-таки китайский предлагаю поговорить немного на другую тему, но в том же направлении: как сделать код программы ближе к человеку? 

Один из ответов на этот вопрос зародился еще в 70-х годах прошлого столетия как method chaining в рамках языка Smalltalk и, благодаря стараниям Эрика Эванса и Мартина Фаулера дошел до нас как Fluent API.

Читать далее

Главная проблема использования ИИ (Иллюзии Интеллекта) при разработке ПО

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели12K

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

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

Читать далее

Измерение сложности моделей — Часть 2: Применяем теорию на практике

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели4.1K

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

Читать далее

Оценка сложности модели — Часть 1: Почему проще обычно лучше

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели4.5K

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

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

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

Читать далее

Ouroboros — язык программирования почти без синтаксиса

Время на прочтение12 мин
Охват и читатели20K

От переводчика: статья немного сокращена по сравнению с оригиналом, исключён раздел об этимологии слова "Ouroboros", а также полные каламбуров отсылки автора к латинским, прочим романским и английским корням.

Далее - от автора.

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

Можно ли просто избавиться от синтаксиса или, как минимум, предельно его упростить? Другой вариант — можно ли сделать синтаксис произвольным, чтобы программист, пишущий код, мог сам для себя его определять?

Именно этих целей мы попытались достичь, создав язык Ouroboros. Его синтаксис максимально прост. Настолько, что в этом языке даже не предусмотрен синтаксический анализатор. В нём есть только лексический анализатор, код которого составляет 20 строк.

Читать далее
1
23 ...

Вклад авторов