Pull to refresh
8
0
Send message

Feature-Sliced Design – альтернативный подход к организации кода приложений

Reading time7 min
Views25K

Feature-Sliced Design — это архитектурная методология, активно набирающая популярность в последнее время. И не зря: организация разработки по её правилам позволяет упростить процессы, сделать их быстрее и гибче. Больше не нужно будет переживать из-за совместной работы в одном домене и конфликтов кода, долго искать ответ на вопрос «А куда же впилить новую фичу, тут и так намешано…» 

О том, как устроена Feature-sliced Design, чем она отличается от «классической» организации кода, плюсах и минусах от её внедрения — в этой статье.

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments20

Быть особенным

Level of difficultyEasy
Reading time5 min
Views6K

Посмотри, я особенный! Кричим мы обществу. Я запускаю уже третий бизнес! А я посетил сто стран! Я сказочно красива! А я вырос в ебенях, но теперь имею вес в столице! Я очень осознанный! А я только вернулся из ретрита и всё понял! Я цинично всех разоблачаю! А я богаче! Я занимаю высокий пост! А я талантливый художник! Я очень умная! А я знаком со знаменитостями! Я ношу сумочку за десять тысяч долларов! А я прыгал с парашютом! Я купил квартиру в центре! Набрал миллион подписчиков! Искренний! Добрый! Всё это вместе взятое и выше всего этого!

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

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

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

И вот мы здесь. В мире социальных сетей, где значимость «быть особенным» улетела в стратосферу. Мозг обезьяны к таким радикальным переменам, конечно, был не очень готов.

Читать далее
Total votes 26: ↑16 and ↓10+8
Comments47

1. Введение в Unicode (опять?)

Level of difficultyMedium
Reading time25 min
Views17K

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

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

тут есть что почитать
Total votes 48: ↑46 and ↓2+56
Comments18

Яндекс выводит за границу заработанные в России деньги, пока это возможно

Reading time5 min
Views63K

Яндекс отчитался за 2 квартал (и первое полугодие) 2023 года, и в отчете я обнаружил много интересного. Я уже на протяжении 4 лет разбираю каждый квартал отчетность Яндекса, и это 16-й по счёту отчет (и, возможно, это последний разбор в общем доступе). Так что я уже знаю, куда смотреть и что там можно увидеть.

Читать далее
Total votes 257: ↑243 and ↓14+291
Comments97

Без бумажки ты…или истории наших факапов с заказчиками при разработке сайтов

Level of difficultyEasy
Reading time5 min
Views2.6K

Поднимите руки те, кто никогда в жизни не косячил. Лес рук. Вот именно. Каждый из нас хоть раз делал что-то не так, в том числе и мы с агентством: неправильный договор, работа с доисторической книгой, неучтенки…и это лишь малая часть. А потому мы не стесняемся об этом открыто говорить. Подробнее о каждом факапе ‒ внутри.

Читать далее
Total votes 16: ↑10 and ↓6+7
Comments2

[Разбор резюме] Хвалим, а не критикуем: образцовое резюме сетевого инженера

Level of difficultyEasy
Reading time3 min
Views20K

Нам в регулярную рубрику «Разбор резюме» прислали резюме человека, который претендует на должность «Сетевой инженер». Мы с рекрутерами его открыли и поняли, что вместо разбора по нему сделаем инструкцию «Как надо составлять резюме». Разберем все по порядку и расскажем, почему в нем все хорошо и почему так стоит составлять свое резюме практически каждому.

Читать далее
Total votes 21: ↑18 and ↓3+15
Comments42

Человекочитаемый код

Level of difficultyEasy
Reading time10 min
Views11K

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

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

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

Здесь собрано несколько советов, которые позволяют мне делать свой код человекочитаемым и простым для понимая коллегам. Ведь компилятор сможет прочитать любой синтаксически правильный код, а человек — нет.

Читать далее
Total votes 18: ↑16 and ↓2+21
Comments23

Автоматизация найма: как мы запустили HR-бота и избавились от рутинной работы при поиске кандидатов

Level of difficultyEasy
Reading time4 min
Views4.8K

Привет! Я Ольга Татаринова, Head of Ceremonial Magic в AGIMA AI. Сегодня я хочу поделиться историей, как мы ускорили и упростили наём, внедрив HR-чат-бота. Он рассказывает о компании, вакансиях, собирает резюме и предлагает выполнить тестовые задания. Всё это в автоматическом режиме с бесшовным переключением на оператора, если возникает такая потребность.

Читать далее
Total votes 15: ↑11 and ↓4+7
Comments10

Трюк с LD_PRELOAD

Reading time7 min
Views4.7K

Недавно на кафедре баз данных TUM я работал над интересной низкоуровневой библиотекой на языке С — tssx, заменяющей в любом приложении взаимодействие через сокеты на быструю передачу данных через разделяемую память. С нашей библиотекой Postgres работает более чем в два раза быстрее, а некоторые программы даже на порядок быстрее. В основе библиотеки лежит трюк с LD_PRELOAD, о котором я и расскажу в этой статье.

Читать далее
Total votes 42: ↑26 and ↓16+16
Comments15

Самое сложное в ПО — не кодинг, а требования, или Почему разработчикам не стоит бояться ИИ

Level of difficultyEasy
Reading time7 min
Views10K

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

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

В этой статье я расскажу о связи между требованиями и ПО, а также о том, что необходимо ИИ для создания хороших результатов.
Читать дальше →
Total votes 36: ↑34 and ↓2+46
Comments39

Купи доску и мотор

Level of difficultyEasy
Reading time5 min
Views17K

Уже больше года назад я прочитал статью https://habr.com/ru/companies/first/articles/662570/. Судя по комментариям она вызвала много разных эмоций, но лично меня эта статья вдохновила на создание для себя такой штуки. От себя лично я благодарю автора за эту статью.

Опущу много подробностей и сразу скажу что остановился на покупной надувной доске и покупной мачте с подводным крылом.

Читать далее
Total votes 61: ↑59 and ↓2+76
Comments87

Каждый второй айтишник станет внедренцем

Level of difficultyEasy
Reading time6 min
Views3.6K

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

По разным оценкам только на 2021 год на IT образование россияне потратили около 46 миллиардов рублей. 

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

В январе 2022 года в России не хватало порядка 1 миллиона специалистов. Что сейчас?

Читать далее
Total votes 11: ↑3 and ↓8-3
Comments15

В {n} раз быстрее Си

Level of difficultyHard
Reading time13 min
Views39K

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

Эта статья публиковалась на главной странице HackerNews, и к её обсуждению вы можете присоединиться здесь.
Читать дальше →
Total votes 117: ↑113 and ↓4+153
Comments300

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

Level of difficultyEasy
Reading time3 min
Views3.9K
Несколько дней назад я наткнулся на пост в блоге Валентины Купач под названием «Баги и медленные релизы – нормально ли это?» Уже одного заголовка было достаточно, чтобы вызвать у меня раздражение. В смысле? Ответ на этот вопрос известен уже несколько десятилетий! Наверняка это кликбейт и больше ничего.

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

Несложно догадаться, почему идеи Купач вызвали у меня, поддерживающего благородные принципы вроде разработки через тестирование и магистральной разработки, такое возмущение. Они ведь напрямую противоречат всем моим убеждения!

Но больше всего в ее посте меня разозлило вот что: она была права.
Читать дальше →
Total votes 16: ↑12 and ↓4+12
Comments23

Как работает хэширование

Level of difficultyMedium
Reading time12 min
Views72K

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

Хэш-функции фундаментальны и используются повсюду.

Но что же такое хэш-функции и как они работают?

В этом посте я собираюсь развенчать мифы вокруг этих функций. Мы начнём с простой хэш-функции, узнаем, как проверить, хороша ли хэш-функция, а затем рассмотрим реальный пример применения хэш-функции: хэш-таблицу.
Читать дальше →
Total votes 62: ↑59 and ↓3+70
Comments49

Возвращаем 2007 год, или делаем Интернет без блокировок

Level of difficultyMedium
Reading time5 min
Views68K

Как известно, в 2007 году кроме того, что деревья были выше, а трава зеленей, еще и в Интернете не было особых ограничений - можно было открыть почти любой сайт и наслаждаться им. До ковровых блокировок Telegram оставалось ещё 10 лет... К сожалению, в наше время такой возможности уже нет. Причины тут всем известны, в частности, некоторые компании уже не предоставляют своих услуг в России.

Хорошо, что существует возможность в рамках домашней сети восстановить свободный Интернет таким, каким он был в 2007-м. Именно этим мы и займемся. Стоит отметить, что в 2007 году довольно часто можно было встретить подключения на скорости 64-128 Кб/с, а то и вовсе dial-up; Wi-Fi был редкостью, а мобильная связь - довольно дорогим удовольствием. Однако, эти особенности того времени мы постараемся не воспроизводить.

Представляю вашему вниманию Freeroute - простой маршрутизатор, который позволяет направлять трафик на разные шлюзы в зависимости от домена назначения. Free в названии, как водится, означает свободный, а не бесплатный.

Читать далее
Total votes 69: ↑65 and ↓4+76
Comments98

Внезапно сложная задача на литкоде: Варианты покупки двух товаров

Level of difficultyHard
Reading time6 min
Views13K

Есть вот такая, вроде бы, простая задача на литкоде: Дано три числа total - сколько у вас есть денег, cost1, cost2 - цены двух товаров. Надо подсчитать, сколько всего существует различных способов купить сколько-то этих двух товаров, не выходя из бюджета (значение имеет только общее количество покупок). Иными словами, сколько существет целых неотрицательных пар (x, y), таких что x*cost1+y*cost2 <= total . Например, имея товары ценами {5, 10} и 20 денег на руках, есть 9 способов потратить деньги: 0, 5, 5+5, 5+5+5, 5+5+5+5, 10, 10+5, 10+5+5, 10+10.

Она там даже помечена как medium и вообще в одну строчку решается, но это если допускать безумно медленное решение за O(total / max(cost1, cost2)) , т.е линейное от входных чисел. А сможете ли вы решить ее сильно быстрее - за O(log(max(cost1, cost2))) ? В этом случае задачка становится вполне себе hard и требует много математики и аккуратности. Если интересно решение - добро пожаловать под кат. Буду рад любым альтернативным решениям. Может кто-то сможет додуматься до похожего решения проще.

Читать далее
Total votes 23: ↑18 and ↓5+18
Comments49

Искренность — как худшее качество в IT-карьере? Или как меня уволили в первый же день на первой работе

Level of difficultyEasy
Reading time4 min
Views38K

В различных учебных заведениях по программированию обучают специализированным профессиональным навыкам. Иногда там учат умению работать в команде. Это когда дают задачи бригадам из 2-x или 3-х студентов. Но я не слышал, чтобы где-то рассказывали про корпоративную субкультуру тех организаций, где предстоит работать молодому специалисту. А зря! Такое незнание на порядок опасней профессионального!

Читать далее
Total votes 72: ↑48 and ↓24+42
Comments344

Java Digest #2

Level of difficultyEasy
Reading time6 min
Views8.3K

Всем привет! ? ? ?

Мы — Java-разработчики Тинькофф: Константин, Андрей и Арсений. Собираем новости, статьи, туториалы и другие интересные материалы из мира Java-разработки. Решили делиться этим не только с коллегами, но и со всем сообществом.

Джо Аберкромби писал: «Чем больше ты узнаешь — тем больше понимаешь, как мало знаешь. Однако усилие само по себе стоит того». Надеемся, наш дайджест поможет вам на этом пути. Stay tuned! ?

Читать свежий выпуск
Total votes 39: ↑39 and ↓0+39
Comments6

Распознавание лиц для чайников

Level of difficultyEasy
Reading time8 min
Views10K

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

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments2

Information

Rating
Does not participate
Registered
Activity