ФФилософия программирования

Философия программирования

@around_dev💻 Технологии🇷🇺 Русский📅 март 2026 г.

Frontend без воды: говорим о технологиях, архитектуре, принципах, кодстайле и том, как превращать хаос в систему.

📊 Полная статистика📝 Все посты
##39#092#036
189
Подписчики
195,6
Ср. охват
103.5%
Вовлечённость
20
Постов
~0.1
В день

Графики

📊 Средний охват постов

📉 ERR % по дням

📋 Публикации по дням

📎 Типы контента

Лучшие публикации

20 из 20
Aaround_dev
around_dev
3 дек., 12:20

Что за звери такие cohesion и coupling Возможно, вы слышали, что при выборе архитектуры (или её проектировании) нужно стремиться к high cohesion (высокому сцеплению) и low coupling (низкой связанности). Так вот, cohesion и coupling — два базовых критерия оценки качества архитектуры. Cohesion — это то, насколько части одного модуля логически относятся к одной задаче. Чем выше cohesion, тем больше «про одно» этот модуль, тем проще его понять и менять. Можно даже сказать, что high cohesion это прин...

👁 263
Aaround_dev
around_dev
29 янв., 09:41

Vite vs Webpack: нюансы сборки В проекте на Vite обнаружил неожиданное (для меня) поведение: при загрузке чанка страницы, браузер также загружает чанки двух других, не связанных с ней, страниц: ./page-a.js ./page-b.js ./page-c.js Почему так? Vite (rollup) помещает общий компонент, который используется в нескольких асинхронных чанках, в один из них. Другими словами, при загрузке любого из этих чанков, браузер вынужден загрузить и тот чанк, в котором находятся общий компонент. Однако, это не являе...

👁 262
Aaround_dev
around_dev
11 янв., 09:34

Императив vs Декларатив. Точно понимаете разницу? Императивный стиль описывает КАК достичь результата (пошаговые инструкции), а декларативный — ЧТО нужно получить (описание желаемого исхода). Скорее всего, именно так вы ответите на вопрос, чем отличаются эти стили программирования, и по сути вы будете правы. Но давайте рассмотрим простой пример: const isEven = count % 2 === 0; Сможете чётко ответить, какой именно стиль программирования тут используется, ЧТО или КАК? Если вы засомневались или под...

👁 247
Aaround_dev
around_dev
19 янв., 12:50

Простой пример сокрытия императивного кода за декларативным интерфейсом Для начала вспомним, что декларативное программирование фокусируется на описании желаемого результата, вместо указания пошаговых действий. Основное преимущество этого стиля в том, что он делает код короче и выразительнее, скрывая детали реализации. Простой пример, где isLoading отвечает за блокировку кнопки Submit: function CreateOrder(props) { const [isLoading, setLoading] = createSignal(false); function onSubmit() { setLoa...

👁 236
Aaround_dev
around_dev
25 окт., 14:00

Раскладывание кода по папкам — архитектура? Если говорить максимально просто, то архитектура в программировании — это организация системы, которая определяет её основные части и правила, как они между собой взаимодействуют. Например, функциональное мышление — это тоже архитектура, потому что оно делит систему на компоненты (данные, вычисления, действия) и задаёт, как они должны работать вместе. А что насчёт раскладывания кода по папкам? Да, это тоже часть архитектуры. В FSD (Feature-Sliced Desig...

👁 226
Aaround_dev
around_dev
27 нояб., 12:11

Проверяем импорты через ESLint В процессе улучшения структуры проекта, которую я описывал здесь, задумался над базовыми проверками корректности импортов. Эта структура строится на «функциональном мышлении» (далее ФМ), в котором код должен быть разделён на данные, вычисления и действия, поэтому необходимо проверять корректность импортов между определёнными сегментами. Например, чтобы сегмент ui (в контексте ФМ это вычисления) не мог импортировать сегмент $api (в контексте ФМ это действия). Н...

👁 219
Aaround_dev
around_dev
10 февр., 09:28

React: memo и useMemo Это инструменты, решающие конкретные задачи, или головная боль разработчиков? Прежде чем отвечать на этот вопрос, рассмотрим три примера: 1️⃣ Контекст function Page() { const { id } = useParams(); const { data } = useQueryData(); // ...fetching other data return ( <Context.Provider value={{ id, value: data.value }} > <Content /> </Context.Provider> ); } При каждом рендере провайдер получает новый объект. При этом, подписанные на этот контекст компоненты также будут выполнен...

👁 214
Aaround_dev
around_dev
18 февр., 07:25

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

👁 213
Aaround_dev
around_dev
8 янв., 09:05

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

👁 212
Aaround_dev
around_dev
3 нояб., 10:51

Малоизвестные возможности Intl Intl часто ассоциируется с простым форматированием чисел, дат и валют. Однако это API содержит и другие полезные функции: Intl.ListFormat — форматирует перечисления, корректно вставляя запятые и союзы: // "яблоки, груши и бананы" (new Intl.ListFormat("RU")).format( ["яблоки", "груши", "бананы"] ); Intl.RelativeTimeFormat — форматирует относительное время: const rtf = new Intl.RelativeTimeFormat("RU"); rtf.format(3, "days"); // "через 3 дня" rtf.format(-2, "hours");...

👁 210

Типы хуков

Нейтральный15 | 190 просм.
Вопрос5 | 213 просм.

Длина постов

Очень длинные (1000+)14 | 211 просм.
Длинные (500-1000)3 | 194 просм.
Средние (200-500)2 | 191 просм.
Короткие (<200)1 | 0 просм.

Влияние эмодзи

210
С эмодзи (1)
195
Без эмодзи (19)
+7.7% охвата

Типы контента

📝
19
text
199 просм.
📷
1
photo
134 просм.
Философия программирования (@around_dev) — Telegram-канал | PostSniper