Category: it

Category was added automatically. Read all entries about "it".

Новыя языки

Читал на днях про Go, язык программирования от Google. Товарищи сначала хотели сделать осовремененный аналог C - очень простой язык с минимумом извратов. Но жизнь буквально заставляет их наступать на горло собственной песне и добавлять фичи. Особенно видно на примере exception-ов. Сначала в FAQ они отвечают на вопрос, почему у них нет exception-ов. Распинаются, как exception-ы приводят к некрасивому коду и как программисты их используют не по делу (явно товарищей достала Java с явным объявлением и необходимостью обработки exception-ов). А дальше идет явно добавленная позже фраза про альтернативный механизм - те же exception-ы, вид сбоку. Но их синтаксис с defer вместо try-finally или using мне нравится больше, т.к. не требует дополнительного уровня вложенности блоков. Было бы неплохо, если бы в Kotlin сделали что-то похожее.

Code First - новая идеология работы с базой данных

Прошлый пост про прожекты баз данных я написал, еще не зная, что в Microsoft тоже задумываются об этих проблемах. Между тем, тихо и незаметно вышла уже пятая бета новой технологии Code First. Она является дополнением к Entity Framework 4, но позволяет использовать совершенно другой процесс разработки.

В классической Entity Framework мы сначала разрабатываем таблицу при помощи средства разработки баз данных, потом пишем кучу xml-ек для описания мэпинга таблиц к объектам (или используем визуальный дизайнер для этого), потом запускаем генератор кода, который делает нам кошмарно навороченные ORM классы, а потом повторяем этот процесс для внесения изменений.

В технологии Code First мы просто пишем один обычный класс (который представляет собой запись из таблицы) и один специально унаследованный класс и запускаем приложение. Все. База данных, таблицы, схема мэпинг генерируются автоматически. Далее мы можем работать с классом при помощи LINQ, который фактически преобразует код на C# в SQL. При необходимости внесения изменений мы меняем класс и снова перезапускаем приложение - база пересоздается (если мы разрешили соответствующую опцию).

Конечно, во всем этом есть куча недоработок, которые будут проиллюстрированы позже. Но в перспективе эта технология позволит обеспечить несколько важных моментов:


Collapse )