Интерфейси и абстрактни класове (в Java)

Често ми се случва да се чудя дали да ползвам абстрактен клас или интерфейс докато пиша на Java. И двете идват от леко остарелия ООП апарат на C++, в който наследяването се ползва предимно за две неща – предотвратяване на повторение на код и абстракция. Та, хрумна ми една проста схемичка как да определя кога какво да ползвам.

Continue reading

Uniform Access Principle

Днес прочетох за нещо, наречено Meyer’s Uniform Access Principle. Това е един много интересен прицип касаещ ООП езиците. Гласи горе-долу следното:

Атрибутите на един обект трябва да се достъпват чрез нотация, която не позволява да се различи дали те са имплементирани чрез запис или чрез изчисление.

Иначе казано, line.length не трябва да издава дали става въпрос за поле или метод, изчисляващ разстоянието между двата края. Това е много хубава идея, понеже промотира любимите ми думички – абстракция и енкапсулация. Та, замислих се доколко това важи в езиците, които ползвам.

Continue reading

Блогоден

Тук видях следната интересност. И понеже звучи весело, а клиентите ми в петък са още по-недисциплиринани, реших да упълтня единия час чакане като уважа „традицята“. Много е свежо, че трябва да се избират блогове, които се различават по култура и гледна точка.

  • Raganwald – Това съвсем наскоро го препоръчах и пак ще го препоръчам. Тоя човек е неповторим. Разликата в културата ни е, че той може да пише добре, докато аз не.
  • Атанас Ласков – Пише твърде рядко, но винаги ми е много интересно да му чета размислите. Не знам защо.
  • Личния блог на Веско – Друг човечец, който съм линкнал вдясно. Макар и към друг негов блог. Този ми е много по-интересен. Отново, не мога да обясня защо.
  • Милослав – Този човек няма да спра да го рекламирам, значи. Идете и прочетете. Разликата в културата е очевидна – той е от Бургас. Нямам какво повече да кажа за него.
  • Paul Graham – Не е точно блог. Но има много мъдрост. Странна, но все мъдра. И Lisp.

Куинче на Python

Наскоро си ходих по улицата и си спомних за едно предизвикателство от детството ми – да напиша програма, която принтира кода си. Не знам дали на вас ви се случва да ви хрумват такива неща, докато си ходите по улиците. Или да си спомняте такива предизвикателства от детството си. Аз обаче съм от този тип хора. Та, ето какво съчиних… Continue reading

Необмислена генерализация

Щастлив ден. Открих че поредният мой дразнител в менталния модел на повечето програмисти си има име – premature generalization. Случвало ли ви се е колегите / приятелите / семейството да ви вкарват в неописуемо дълбока абстракция, която после ви излиза през носа със своята сложност. Да загубите 30 часа за да имплементирате въпросната генерализация и още 30 да я използвате по предназначение, когато е могло да стане много по-лесно за 25?. Наричат го още Turing Tar-Pit.

Поуката? Не генерализирайте излишно. Целта ни е да ограничаваме колкото можем, а не обратното. You Ain’t Gonna Need It.

Реджиналд Брейтуейт

Напоследък се зачитам в един много, много интересен блог, който Петьо ми препоръча. Това е един човек, който се занимава от доста време със занаята и посвещава част от свободното си време да си споделя програмистката мъдрост с нас, младите и зелените. На сайта му ще намерите много есета на програмистска тематика, покриващи най-различни насоки като красив код, добри практити, мениджмент и прочее. Материалите които е изписал от 2004 досега определено си заслужават да бъдат пакетирани в книжка. Четете и се учете.

Промени

Повечето ми приятели никога не ме разбират, като им казвам колко много се променя света наоколо. Изглежда забелязвам най-странните неща, но ще ми отнеме месец докато осъзная, че Витошка вече е само за пешеходци или ще чуя от някой чужденец, че българските медици, видиш ли, са се върнали. Моята наблюдателност напомня за оня лаф със сламката в чуждото око и гредата в своето, само дето без въобще да става въпрос за очи, кой им е собственик, кво има в тях… и май няма нищо общо. Както и да е… Continue reading

Десет „яки“ неща в PHP

Попаднах на тази статия. Заглавието тайно нашепваше за невероятни разкирия, готови да отворят скептично мижящите ми очи към една нова, красива земя на „PHP якост“. Отворих статията и със затаен дъх потеглих на пътешествие, което можеше да открие пред мен нови програмистки хоризонти.

Continue reading

GMail shortcuts

Оня ден Ники ме открехна на GMail shortcuts – много силна хавица, която адски много ми улесни работата с тоновете писма. Видях ги сам преди известно време, но не се насилих да ги науча и за това на помощ дойде едно плъгинче към Firefox – Better GMail. Освен безценната опция да виждате „горещите клавиши“ като натиснете h, получавате няколко бонуса – нов набор от бързи комбинации плюс различни Greasemonkey хакчета, които разширяват любимата поща по различни начини. Хвърлете му един поглед, ако и вие като мен мразите да посягате към мишката.

Чък Норис (предимно)

Днес попаднах на два толкова интересни линка, че направо ще блогна за тях. Първият съчетава две иначе несмесваеми вещества – Чък Норис и Java. Забавно е наистина да знаеш, че той прави множествено наследяване. Другия пък е много изненадващ и изглежда като някаква невъзможна пропаганда, някакъв долен колаж, измамно творение на подлец и мерзавец, жадуващ да очерни името Чъково. Няма да коментирам – вижте сами.