Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2011-03-28

Абстрагируйся

Сложились вместе сразу две заметки о питомцах фонда Apache.

1.
Команда разработчиков Open Source-проекта Apache Commons объявила о том, что французское космическое агентство CNES (Centre National d'Études Spatiales) выбрало её библиотеку Math для своего следующего проекта — Сириус (Sirius).
commons.apache.org/math
nixp.ru/news

2.
Why we move away from CouchDB
We were already aware of Riak before we started using CouchDB, but we weren’t sure about trusting a new product at this point, so we decided, after some benchmark, to go for CouchDB.
After the first couple of months, it was obvious that this was a bad choice.
Our main problems with CouchDB is scalability, versionning and stability.
peterbe.com/plog/zodb-and-couchdb

И если первая заметка — просто повод порадоваться за разработчиков библиотеки (фактически имеем признание высочайшего качества разработки), то вторая пробудила воспоминания.

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

А еще мне вспомнилось, как когда-то грамотные вроде люди, на полном серьезе обсуждали недостатки Lotus Notes (нынче Domino) — неудобно работать с данными в стиле реляционных БД, медленно и возможности слабоваты по сравнению с... Целый отчет для руководства написали. Типа, негоже нам использовать групваре как СУБД, с обоснованием. Грустно это и смешно, причем одновременно.

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)