Так вышло, что на заре моей карьеры в IT меня покусал Oracle -- тогда я ещё не знал ни одной ORM, но уже шпарил SQL и знал, насколько огромны возможности БД.
Рубрика «ооп» - 4
SQLAlchemy: а ведь раньше я презирал ORM
2021-06-05 в 18:14, admin, рубрики: database design, orm, Pyhon, python, sql, sqlalchemy, высокая производительность, ооп, Проектирование и рефакторингНачало работы с нейронными сетями
2021-02-14 в 21:56, admin, рубрики: book, java, network, neural, programming, машинное обучение, оопВ этой главе мы познакомимся с нейронными сетями и узнаем для чего они были спроектированы. Эта глава служит фундаментом для последующих глав, в то время как эта показывает базовые понятия нейронных сетей. В этой главе мы покроем следующие темы:
-
Искусственные нейроны
-
Весы(weights) и смещения(biases)
-
Активационные функции(activation functions)
-
Слои нейронов(layers)
-
Реализация нейронной сети на Java
Раскрывая нейронные сети
Наследование в Nuget-пакетах
2021-01-21 в 9:40, admin, рубрики: .net, msbuild, nuget, Блог компании Райффайзенбанк, ооп
Nuget-пакет — это не только архив с переиспользуемыми сборками, но и контент с target-скриптами, которые задают поведение MsBuild при сборке приложения. Это дает нам возможность рассматривать nuget-пакет в качестве самостоятельного объекта, у которого есть состояние и поведение.
А раз у нас есть объект, то что мешает попробовать посмотреть на работу с ним со стороны объектно-ориентированной парадигмы? Давайте попробуем применить для nuget-пакетов один из основных принципов ООП — наследование.
Читать полностью »
Разбираем классы по косточкам или интроспектируем типы в Typescript
2021-01-02 в 23:07, admin, рубрики: TypeScript, интроспекция, обобщённое программирование, ооп, Программирование
«Крутую ты штуку придумал, Стёпа», — сообщил мне коллега, осознав рассказанную ему идею. Надеюсь это действительно так, хоть и не скажу, что в том, о чём далее пойдёт речь, есть что-то безумно новаторское, однако, на мой взгляд, интерес данный материал всё же представляет.
Сегодня поговорим о применении интроспекции в разработке веб-интерфейсов, немного пошаманим с обобщённым программированием и изобретём велосипед в Typescript, имеющий похожий аналог в .NET.
Что нового в C# 9.0
2020-11-13 в 12:15, admin, рубрики: C#, skillfactory, Блог компании SkillFactory, ооп, Программирование, разработка, сишарпВ преддверии старта нового потока курса «C#-разработчик» представляем вашему вниманию обзор нововведений. Среди них — новый метод доступа к свойству — init, не позволяющий изменять свойства после инициализации, with-выражения для изменения свойств объекта прямо здесь и сейчас, записи и новые возможности сопоставления шаблонов. Подробности, конечно же, под катом.
Наследование реализации в С++. Реальная история
2020-10-24 в 11:15, admin, рубрики: c++, Блог компании Блог компании Издательский дом «Питер», ооп, Программирование, Проектирование и рефакторинг, С++, Совершенный код, чистый кодПривет!
В поисках вдохновения, чем бы пополнить портфель издательства на тему С++, мы набрели на возникший словно из ниоткуда блог Артура О'Дуайера, кстати, уже написавшего одну книгу по C++. Сегодняшняя публикация посвящена теме чистого кода. Надеемся, что вам будут интересны как сам кейс, так и автор.
Читать полностью »
Чиним наследование?
2020-10-03 в 14:01, admin, рубрики: дизайн языков программирования, ооп, ООП головного мозгаСначала здесь было долгое вступление про то, как я додумался до гениальной идеи (шутка, это миксины в TS/JS), которой и посвящена статья. Не буду тратить ваше время, вот виновник сегодняшнего торжества (осторожно, 5 строчек на JS):
function Extends(clazz) {
return class extends clazz {
// ...
}
}
Поясню, как это работает. Вместо обычного наследования мы пользуемся механизмом выше. Потом мы указываем базовый класс только при создании объекта:
const Class = Extends(Base)
const object = new Class(...args)
Я постараюсь убедить вас, что это — сын маминой подруги для наследования классов и способ вернуть наследованию звание труъ-ООП инструмента (сразу после прототипного наследования, конечно).
Условимся насчёт названий: я буду называть такую технику миксином, хотя под этим всё-таки подразумевается немного другое. До того, как мне подсказали, что это миксины из TS/JS, я использовал название LBC (late-bound classes).
Творческое использование методов расширения в C#
2020-09-12 в 6:24, admin, рубрики: .net, C#, Блог компании Издательский дом «Питер», методы расширения, ооп, Программирование, проектирование интерфейсов, чистый кодПривет!
Продолжая исследование темы C#, мы перевели для вас следующую небольшую статью, касающуюся оригинального использования extension methods. Рекомендуем обратить особое внимание на последний раздел, касающийся интерфейсов, а также на профиль автора.
ООП: Кто взял Измаил? Вопрос принадлежности методов объекту
2020-07-19 в 7:04, admin, рубрики: Анализ и проектирование систем, ооп, ООП головного мозга, Программирование, Проектирование и рефакторинг, проектирование систем, процедурное программирование, процесс разработкиДанная статья посвящена разбору вопроса о том, какому именно объекту ООП должен принадлежать метод, осуществляющий взаимодейстие между несколькими сущностями.
Это распространённая тема для холиваров. Например:
Не используйте ООП. Никогда. Это ошибка.
На эту тему есть много материалов, к примеру: www.youtube.com/watch?v=QM1iUe6IofM
Если ООП все еще кажется вам хорошей идеей, то решите простую задачку.
Есть три объекта: кошка, кормушка и человек. Вам необходимо написать метод, который бы позволял человеку покормить кошку, воспользовавшись кормушкой.
Вопрос: методом какого класса будет являться метод.покормить()?
Просьба привести аргументированный ответ, в соответствии с иерархией классов, и другими лучшими практиками ООП.
Теперь сравните это с функциональной реализацией: у вас есть функция покормитьКошку() принимающая в качестве аргумента ссылку на кошку и кормушку.
Цитата из холивара
Как ответить на данный вопрос?
Читать полностью »
Аккуратнее с vtable, или как выстрелить себе в ногу обновлением библиотеки
2020-07-18 в 21:16, admin, рубрики: c++, c++ библиотеки, vtable, оопПредставьте, что вы разрабатываете приложение, использующее какую-то shared-библиотеку. Библиотека тщательно следует принципам обратной совместимости, не меняя старый интерфейс и лишь добавляя новый. Оказывается, даже с учетом этого обновление библиотеки без непосредственной перелинковки приложения может привести к неожиданным эффектам.