Една интересна статия в блога на Andrew Clarke: Data modelling and other dying arts
Искам да се хвана за следният пасаж
Of course people are doing system design. There’s lots of design about but I would guess that it all happens in UML. So the majority of logical data modelling these days produces class models rather than ERDs. The physical database design stage is much more likely to consist of ORM than mapping entities to tables. Now that’s not the sort of party you invite a DBA to, because you just know they’re going to glower in the corner, drinking heavily and muttering to themselves. So the mappings and the database design will be done by middle-tier developers. Our communal prejudices tell us this is unlikely to produce a correct and peformant database design, not least because projects which use such an approach tend to make a fetish of database agnosticism and platform independence. So in the long run we might see a resurgence in data modelling, as part of the tool set for rescuing poorly performing class models.
Нищо ново под слънцето. От както има компютри, нещата вървят все в една посока: разработката на софтуер става все по-лесна и по-лесна, разни инструменти автоматизират всичко. Отначало са асемблерните езици; после идват езици от по-високо ниво с компилатори, които превръщат готови конструкции в машинен код. Наслагват се все повече слоеве: RAD инструменти дават възможност за програмиране с все повече цъкане и по-малко писане. „Помагат“ на програмистите да не мислят за компютъра, аз за задачата. Използват се готови библиотеки като MFC, после идват разните виртуални бози като Java и .NET, които отделят разработчиците и от операционната система. Сега можеш да си програмист без да знаеш как е устроен компютъра, да не говорим за процесора.
По-лесно, да, но на каква цена? Всички „готови“ решения, на каквото и да е ниво са от типа „най-малко общо кратно“. Универсални – „one size fits all“. Какво е лошото на този подход? Първо, че много силно спъва развитието. Повечето съвременни програми използват инструкциите на Pentium. Да оптимизираш за новите платформи е трудно, не става с готови инструменти и почти никой не го прави. Освен това обобщените и опростени модели нямат много възможности за интелигентен подход при реализацията. Представете си, че в строителството има няколко градивни блокчета и всичко се прави от тях: стая 2х3 метра с 1 прозорец, стая 4х3 метра с 2 прозореца, баня/тоалетна в син цвят и коридор 2 метра. Използват се 10 вида различни по цвят, но доста подобни като способности подови настилки, които стават и за облицовка на стена – вътрешна и външна. Ако някой иска нещо по-специално трябва сам да си забърка бетон, сам да си пече тухли и т.н. Не че не може, но е трудно. Мисля, че в този случай строителите ще бъдат доста доволни, но не и потребителите… Continue reading »