псы в рапиде » from archive
вот есть такое, классическое программирование, алгоритмы там, все дела.
есть такое "программирование структур", например ООП: виртуальные методы, конструкторы, делегирование, геттеры/сеттеры и проч. ‎- псы в рапиде
рельса со своим convention over configuration доводит это программирование структур до некоей, выбешивающей после определенного предела, границы. ‎- псы в рапиде
если таблица называется так же как и класс, и в таблице есть это поле, и в форме вы создали DOM-элемент с идентификатором, который равен "класс-id", и экземпляр этого класса имеет метод #to_label, и вы добавили в application.js строчку require с определенным синтаксисом, то все магически работает. да, еще нужно добавить в routes.rb определенную строчку, у которой существует примерно три всё более шорткатных вариации. да, файл с HTML-шаблоном должен лежать в файле с четко определенным именем. ‎- псы в рапиде
если, конечно, вы не опечатались в одной букве, или не перепутали plural и singular. ‎- псы в рапиде
или, блядь, в одном из гемов есть баг, который глючит, начиная с определенной сложности activerecord'овских ассоциаций. или вы настроили ассоциацию только в одну сторону, потому что в приложении нужен только доступ слева направо, но вот этому гему нужно также резолвить справа налево. ‎- псы в рапиде
для скорости, конечно же, никто не проверяет типичных ошибок. конечно же, статических валидаторов структуры приложения нет. ‎- псы в рапиде
в результате получается удивительный комплект из Rails Boots, Robe of Rails, Sword of Rails и Rails Gauntlets, которые, когда собраны все воедино как паззл, то играет небесная музыка и все работает. но пока это не так, то получаешь 500 Server Error, покеда. ‎- псы в рапиде
есть ощущение, что дикое количество типичного кода rspec посвящено динамическому тестированию именно этого аспекта, тогда как на самом деле его можно было бы протестировать статически, гораздо быстрее и надежнее. создать текстовый файл с описанием структуры приложения, перечислить там все модели, связи между ними, контроллеры, действия и вьюхи. все, что лежит на диске, но не описано в этом файле — ошибка. все, что противоречит этому файлу — ошибка. ‎- псы в рапиде
Прекрасный пример, почему магия — зло. Заодно и о пользе статически проверяемого и декларативного. ‎- 9000