Pull to refresh
35
0
Сергей Галанин @SergeyGalanin

Программы—программистам! Польза—пользователям!

Send message

Инкапсулируй это

Reading time1 min
Views42K
Подлинное назначение инкапсуляции — собрать в одном месте знания, относящиеся к устройству некой сущности, правилам обращения и операциям с ней. Инкапсуляция появилась гораздо раньше, чем принято думать. Модули в программах на C — это инкапсуляция. Подпрограммы на ассемблере — это инкапсуляция.

Противоположность инкапсуляции — размазывание знаний о функционировании чего-либо по всей программе.
Читать дальше →
Total votes 30: ↑17 and ↓13+4
Comments71

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

Reading time9 min
Views7.8K
Чистый код читается, как хорошо написанная проза.
Грэди Буч в книге «Чистый код»

Ребус как код




Что такое ребус? Это зашифрованное послание. Автор ребуса берёт обычный человеческий текст и кодирует его при помощи рисунков, чисел и букв. А мы разглядываем такую шифровку и пытаемся прочесть исходный текст.

У ребуса есть две ипостаси. С одной стороны ребус — это исходный незашифрованный текст, а с другой — шифрорисунки. Текст — это «что» ребуса, его смысл, сообщение. Рисунки — это «как»: как именно зашифровано сообщение, с помощью каких средств. Отгадывая ребус, мы переводим «как» в «что».
Расшифровать ребус
Total votes 16: ↑14 and ↓2+12
Comments2

Анатомическая метафора кода. Где у кода мускулы

Reading time3 min
Views4.6K
У кода есть мускулы. Правда-правда. Не веришь? Смотри:



Весь код, который выполняет реальную работу: производит вычисления, преобразует данные, проверяет условия и т. д. — это «мясо». «Мышцы» программы. Код, который отвечает за структуризацию — «сухожилия». То, с помощью чего мышцы крепятся к костям. То, благодаря чему каждый отдельный мускул остаётся самостоятельным, а не слипается в бесформенный фарш. А что тогда «кости»? Кости — это пусть будет архитектура программы.

Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments5

Горе от ума, или Почему отличники пишут непонятный код

Reading time6 min
Views67K
У большинства из нас были отличные оценки по математике в школе и в универе. Помните, как мы решали примеры? Скажем, нужно взять производную от функции:

$f(x) = \frac{\ln{x}}{x^2}$


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

$f'(x) = \frac{1-2ln{x}}{x^3}$


Ученики послабее записывали решение по шагам и тратили существенно больше времени:

$f'(x) = \left(\frac{ln{x}}{ x^2}\right)' = \frac{(ln{x})' \cdot x^2 - ln{x} \cdot (x^2)'}{(x^2)^2} =\\ \frac{\frac{1}{x} \cdot x^2 - ln{x} \cdot 2 x}{x^4} = \frac{x - ln{x} \cdot 2 x}{x^4} = \\ \frac{x \cdot (1 - ln{x} \cdot 2)}{x^4} = \frac{1 - 2 ln x}{x^3} $


Нам, отличникам, всё это ни к чему. Зачем писать столько ненужных промежуточных действий, когда можно сразу готовый ответ? Мы же хотим поскорее разделаться с этим примером, чтобы перейти к следующему!
Читать дальше →
Total votes 122: ↑95 and ↓27+68
Comments529

Почему опытные разработчики пишут тупой код и как распознать новичка за километр

Reading time3 min
Views86K
Предлагаю читателям «Хабрахабра» перевод публикации «Why Senior Devs Write Dumb Code and How to Spot a Junior From A Mile Away» за авторством Scott Shipp.


Одна из моих любимых цитат на все времена — Брайана Гетца (Brian Goetz), умнейшего чувака из мира Java, одного из авторов «Java Concurrency in Practice», кроме всего прочего. Цитата взята из интервью, опубликованного на сайте Oracle под заголовком «Пишите тупой код» («Write Dumb Code»). Гетца спросили, как писать хорошо работающий код.
Вот что он ответил
Total votes 165: ↑147 and ↓18+129
Comments407

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity