Наследование, Композиция, Агрегация

В объектно-ориентированных языках программирования существует три способа организации взаимодействия между классами (наследование, композиция, агрегация).

(1) Наследование — это когда класс-наследник имеет все поля и методы родительского класса, и, как правило, добавляет какой-то новый функционал или/и поля. Наследование описывается словом «является» (IS-A). Легковой автомобиль является автомобилем. Вполне естественно, если он будет его наследником.

Ассоциация – это когда один класс включает в себя другой класс в качестве одного из полей. Ассоциация описывается словом «имеет» (HAS-A). Автомобиль имеет двигатель. Вполне естественно, что он не будет являться наследником двигателя. (Ассоциация по сути говорит о взаимоотношении с объектом).

Читать далее
Рубрика: Основы | Оставить комментарий

10 способов оптимизации SQL запросов

  1. Значение, содержащееся в IN в инструкции SQL, не должно быть слишком большим
  2. В операторе SELECT нужно указывать имя полей
  3. Используйте LIMIT для ограничения количества записей
  4. Используйте индексы на фильтрующие поля запроса
  5. По надобности, используйте принудительное использование индекса (FORCE INDEX) для ускорения запроса
  6. Измените настройки используемой СУБД для увеличения используемых аппаратных ресурсов
  7. Во время запроса используйте нужный JOIN для более быстрого выполнения запроса
  8. Старайтесь не использовать подзапросы
  9. Используйте нормализацию и денормализацию структуры базы данных. Нормализация уменьшает избыточность данных, а денормализация позволяет уменьшить количество JOIN операций
  10. Разделите нагрузку между несколькими серверами, чтобы улучшить производительность и обеспечить масштабируемость. Используйте репликацию для распределения чтения между несколькими серверами, а также шардирование для распределения данных по нескольким базам данных
Рубрика: Советы | Метки: , , | Оставить комментарий

Разница грейдов Junior, Middle, Senior

Для себя выработал следующие критерии уровня разработчика:

  • Junior. Надо объяснять как делать задачу, контролировать выполнение, внимательно следить что он делает, обучать.
  • Middle. Уже может сам понять задачу и выполнить её. Может сам разработать отдельный элемент системы или часть приложения. Middle уже учится сам.
  • Senior. Может поговорить с бизнесом, понять что ему надо, спроектировать системное решение и сам целиком его реализовать. Если он не знает какую-то технологию, то может сам разобраться, обучиться или найти того кто знает.

Рубрика: Web | Метки: , , | Оставить комментарий

Что такое ORM

ORM (Object Relational Mapping) — это техника, которая связывает полноценные объекты языка программирования с таблицами в реляционной системе управления базами данных.

С помощью ORM можно манипулировать данными в базе данных через объекты, не прибегая к написанию SQL-запросов вручную. Это достигается за счет автоматического преобразования объектов в строки таблиц базы данных и обратно. Такой подход не только упрощает работу с данными в объектно-ориентированных системах, но и позволяет взаимодействовать с ними на более интуитивном уровне благодаря повышению абстракции.

Читать далее
Рубрика: Основы | Метки: , , | Оставить комментарий

Исправление ошибки could not load «libtss2-tcti-tabrmd.so.0»

Иногда при работе с генерацией сертификатов могут возникнуть ошибки, что не хватает какой-либо библиотеки. В этой статье рассказывается как победить эту ошибку TPM 2.0 - could not load "libtss2-tcti-tabrmd.so.0".

Читать далее
Рубрика: Web | Метки: , | Оставить комментарий