Мне по-настоящему нравится больше чего-либо в разработке ПО делать фреймворки, позволяющие другим разработчикам создавать что-то крутое. Иногда, в погоне за идеальным кодом, мне на ум приходят странные идеи, при реализации которых C# может дойти до предела своих возможностей.
Рубрика «ооп» - 2
Simulating Return Type Inference in C#
2022-06-28 в 17:00, admin, рубрики: .net, C#, csharp, dotnet, inference, type inference, обобщения, обобщённое программирование, обобщенные типы, ооп, ПрограммированиеАбстракции и наследование в Си — стреляем по ногам красиво
2022-06-24 в 12:05, admin, рубрики: C, абстракция, наследование, ненормальное программирование, ооп, упорюсьИногда нет-нет да и хочется что-нибудь абстрагировать и обобщить в коде на Си. К примеру, хочешь ты принтануть содержимое структуры несколько раз, пишешь везде, как дурак, printf("%s %d %fn", foo->bar, foo->baz, foo->boom)
, и интуитивно кажется, что есть способ сделать foo->print(foo)
, и так вообще со всеми структурами, не только с foo
.
Возьмем пример: есть некий чувак с именем и фамилией, и есть птица, у которой есть имя и владелец.
typedef struct Person Person;
struct Person {
char *first_name;
char *last_name;
};
typedef struct Bird Bird;
struct Bird {
char *name;
Person *owner;
};
Вопросы на собеседовании к вакансии Middle Unity-разработчик + полезная информация
2022-06-18 в 15:06, admin, рубрики: C#, solid, unity, вакансии, вопросы, новичкам, обучение, ооп, Программирование, разработка игр, тестовые заданияНекоторое время назад пытался устроиться на подобные вакансии (меня не взяли). Но теперь есть список вопросов, которые помогут подготовиться и углубиться в мир программирования.
(список вопросов взят из самого долгого интервью, остальные были в разы короче)
Список вопросов
Что такое Game Object? Что такое scene?
Что такое canvas? Где и для чего его нужно использовать?
Что такое MonoBehaviour? От чего он наследуется?
Расскажите Жизненный цикл MonoBehaviour.
В каком порядке вызываются события MonoBehaviour в процессе рендеринга кадра?
Зачем нужны отдельные Update и FixedUpdate?
Читать полностью »
Неустаревающие книги?
2022-06-15 в 16:44, admin, рубрики: .net, C#, инверсия зависимостей, модульное тестирование, ооп, паттерны проектирования, чистая архитектураНекоторым из этих книг уже очень много лет. Главная книга о паттернах — Design Patterns — увидела свет в 1994-м году, значит, ей уже почти тридцать. По сравнению с ней, Clean Architecture, вышедшая десять лет назад — практически, ребёнок!
Но десять лет для индустрии — гигантский срок. Возможно, эти книги уже устарели и нам они не нужны?
Перечитаем и попробуем разобраться.
Приёмы объектно-ориентированного проектирования
Объектно-ориентированный антипаттерн
2022-05-29 в 11:14, admin, рубрики: antipattern, antipatterns, c++, use functions luke!, антипаттерны, ВычисляторЗначения, ооп, Программирование, Проектирование и рефакторинг, рефакторинг, Совершенный кодДля тех, кто читает не далее второго абзаца: я не говорю, что любое ООП - это плохо! ООП, особенно классическое полиморфное ООП, заслуженно имеет своё место в реальных проектах. Ниже речь поидёт про частный случай (анти)паттерна, который я периодически встречаю: использование классов там, где могли быть простые свободные функции.
Начало
Довольно часто у студентов, изучающих C++ в определённых учебных кругах, складывается мировоззрение о том, что всё должно быть объектами. Попросите их написать программу, которая считает некоторое значение - и они начнут с создания объекта ValueComputer
и метода vc.computeResult()Читать полностью »
ORM — отвратительный анти-паттерн
2022-05-21 в 23:01, admin, рубрики: backend, IT-стандарты, java, jdbc, orm, postgresql, sql, базы данных, оопОт автора перевода: Написанный далее текст может не совпадать с мнением автора перевода. Все высказывания идут от лица оригинального автора, просьба воздержаться от неоправданных минусов. Оригинальная статья выпущена в 2014 году, поэтому некоторые фрагменты кода могут быть устаревшими или "нежелаемыми".
Содержание статьи:
Знакомство с ООП на примере JavaScript
2022-05-15 в 10:00, admin, рубрики: abstraction, classes, incapsulation, inheritance, javascript, object composition, polymorphism, ruvds_перевод, Блог компании RUVDS.com, ооп, ПрограммированиеВсем привет! В этой статье мы рассмотрим основные характеристики объектно-ориентированного программирования (ООП) на практических примерах JS-кода. В ходе обсуждения мы осветим основные принципы ООП, а также ответим на вопросы, почему и когда этот стиль может быть полезен. Читать полностью »
SOLID – это не правила, а гайдлайны
2022-05-02 в 9:26, admin, рубрики: C#, di, KISS, solid, YAGNI, Блог компании Издательский дом «Питер», интерфейсы, ооп, Программирование, Проектирование и рефакторинг, Совершенный код, чистый кодВ этой статье автор высказывает личное мнение, сформулированное на основе его собственного опыта и вкуса. Поэтому просьба не обижаться, если вы с ним не согласны. Конечно, оно может быть ошибочным – но это и стоит обсудить.
Что такое SOLID ?
Гексагональная архитектура и Domain Driven Design на примере Front-end приложения
2022-03-07 в 8:56, admin, рубрики: DDD, domain driven, domain driven architecture, domain driven development, domain-driven design, geksagon architecture, TypeScript, архитектура, интерфейсы, конференции, ооп, ПрограммированиеНе стоит воспринимать статью за единственно верный подход. Вариаций много, это все лишь видение автора на тематику вопроса.
Погружение
Почему я начал использовать аннотации типов в Python – и вам тоже советую
2022-02-25 в 7:09, admin, рубрики: python, аннотации, Блог компании Издательский дом «Питер», ооп, Программирование, рефакторинг, Совершенный код, типизацияС появлением подсказок типов (type hints) в Python 3.5+ добавилась опциональная статическая типизация – поэтому эти подсказки так мне нравятся. Теперь я аннотирую ими все мои проекты.