Функции или классы — мысли в слух

Раньше я думал, что программирую плохо, потому-что мне не хватает знаний о теории программирования. Теперь, когда в башке сидит куча теоретической информации — типа «принцип открытия закрытия«, «правило подстановки Барбары Лискоу«, «принцип инверсии зависимостей» и т.д. Я понимаю, что программирую плохо, потому-что слишком много думаю о том, что пишу. Но продолжая испытывать неудовлетворенность от написанного […]

Наследование против композиции, что предпочтительнее?

Недавно, мне предложили провести серию небольших семинаров по объектно ориентированному программированию. Я согласился. И вот теперь пытаюсь накидать конспект лекции по инкапсуляции и наследованию. Пока написал некоторые основные тезисы, которые хочу развить до полноценной лекции. Хотелось бы увидеть в комментариях ваше мнение о том, что написано.

Фриланс. Проекты большие и маленькие

Не так давно я считал себя заядлым фрилансером. Так мне нравилось ни от кого не зависеть, что мне казалось будто вся моя оставшаяся жизнь целиком и полностью будет связана с работой через Интернет. Я даже придумал для себя набор правил и условий, которым должен был удовлетворять каждый заказ за выполнения которого я брался. Сейчас уже […]

Маска подсети. Вы уверены, что понимаете для чего она нужна?

Недавно мне довелось проводить собеседование с соискателями на должность инженера-программиста в нашу компанию. Обязательным условием приема на работу было — хорошее знание и понимания основ функционирования локальных вычислительных сетей (ЛВС). По итогам собеседования я поразился тому, что ребята, которые совсем недавно закончили ВУЗы города по техническим специальностям, плохо понимают, что такое маска подсети. В этом […]

Динамическая загрузка скриптов и callback

Появилась у меня простенькая задача — после загрузки модулей Снапа вызвать callback функцию. Для Огнелиса и Оперы тупо использовал событие onload. Код примерно такой: var s = document.createElement( ‘script’ ); s.src = ‘la-la-la.js’; s.onload = function() { …. } Под Ослика пришлось, как всегда, подшаманить. Особенность загрузки моего Снапика заключается в том, что он активируется […]

Связность модуля

Давненько не писал ничего из теории программирования (про заметку о том, что не нужно экономить на переменных еще не забыл, но писать пока ни сил ни времени нет!). Думаю пора бы исправить данную ситуацию. В данном посте немного расскажу о таком понятии как «Сила связности модулей» в дальнейшем более подробно расскажу о каждом из типов […]

Часть 3. О том, как сократить время на исправление ошибок

Проектирование — занятие, безусловно, полезное, но даже хорошая проектная документация не спасет от ошибок при написании кода программы. Когда-то, очень давно, я наивно полагал, что код бывает двух типов: рабочий и нерабочий. При этом, почему-то, совершенно не думал о том, что исходные тексты программы пишутся не только для интерпретатора или компилятора, но и для других […]

Часть 1. Об ошибке, которая приводит в тупик

Самая большая ошибка, когда-либо совершенная мной, заключалась в том, что при выполнении многих проектов я не занимался проектированием на бумаге. Мне казалось, что я прекрасно удерживаю все аспекты разработки в голове. Эта иллюзия была настолько сильной, что я списывал недостатки кода на что угодно, кроме собственной профессиональной близорукости и некомпетентности. Благо, после некоторых мучений, я […]

JavaScript. Техника программирования с использованием флагов.

Программирование на JavaScript имеет один серьезный недостаток — необходимо постоянно думать о совместимости в различных версиях браузера. Очень часто, приходится писать несколько вариантов реализации одного и того же алгоритма. Проверять каждый раз под каким браузером запущен код — занятие нелепое! Удобно в начале выполнения скрипта определить флаги, по которым определять поддерживает браузер то или иное […]

Как стать хорошим программистом.

Программирование — чертовски сложная вещь, нет ни одного действенного способа избежать этой сложности, но есть некоторые советы о которых стоит знать: [social_lock] 1. Открывайте все свои исходники. Ложное чувство стыда, порой, мешает показать свои «творения» собратьям по цеху. Смело подавляйте это чувство, даже если Вас размажут по стенке убийственными доводами, полученный опыт гораздо важнее. 2. […]