Pull to refresh
8
@vdbmsread⁠-⁠only

Пользователь

Send message

ООП, «святая троица» и SOLID: некоторый минимум знаний о них

Reading time43 min
Views114K

Необходимое вступление


Я не гарантирую, что изложенные здесь трактовки общепринятых терминов и принципов совпадают с тем, что изложили в солидных научных статьях калифорнийские профессора во второй половине прошлого века. Я не гарантирую, что мои трактовки полностью разделялись или разделяются большинством IT-профессионалов в отрасли или научной среде. Я даже не гарантирую, что мои трактовки помогут вам на собеседовании, хоть и предполагаю, что будут небесполезны.


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


Столь малые гарантии поднимают вопросы о причинах, по которым статья пишется. Я считаю, что этим вещам должны учить везде, где учат программированию, вплоть до уроков информатики в школах с углублённым её изучением. Тем не менее, для меня стала пугающе нормальной ситуация, когда я узнаю, что собеседник мой коллега, причём работающий уже не первый год, но про инкапсуляцию «что-то там слышал». Необходимость собрать всё это в одном месте и давать ссылку при возникновении вопросов зрела давно. А тут ещё и мой «pet-project» дал мне изрядно пищи для размышлений.


Тут мне могут возразить, что учить эти вещи в школе рановато, и вообще на ООП свет клином не сошёлся. Во-первых, это смотря как учить. Во-вторых, 70% материала этой статьи применимо не только к ООП. Что я буду отмечать отдельно.



Читать дальше →
Total votes 88: ↑82 and ↓6+76
Comments79

ДНК глазами программиста

Reading time15 min
Views89K
От переводчика: Так как я не являюсь биологом, возможны неточности в переводе терминов (и не только :). Оригинал находится здесь.

Если ты – молоток, то во всём увидишь гвоздь


Это всего лишь размышления программиста о ДНК. Я не являюсь молекулярным генетиком.

Исходный код


Находится здесь. Это не шутка. Исходники можно просмотреть с использованием замечательного набора скриптов Perl под названием "Ensembl". Геном человека занимает приблизительно 3 гигабайта, которые можно сократить до 750 мегабайт, если отбросить шелуху. Немного печалит, что это всего лишь 2.8 браузеров Mozilla Firefox.

ДНК похожа скорее не на исходники на языке C, а на байт-код для виртуальной машины под названием «ядро клетки». Крайне сомнительно, что существуют исходники, которые можно скомпилировать в этот байт-код: то, что мы видим, – это всё, что у нас есть.
Читать дальше →
Total votes 115: ↑114 and ↓1+113
Comments308

Наблюдатель, объект, поток, среда

Reading time14 min
Views3.3K

Объект можно представить тремя способами:


  1. Как объем, наполненный плотной материей.
  2. Как результат синтеза конструкции: поселок как объект есть синтез домов поселка.
  3. Как результат анализа конструкции: антенна есть часть комплекса наведения ракет.

В данной статье рассмотрим, как появляется представление об объекте как об объеме плотной материи.


Парадигма объектов, излучающих потоки, которые распространяются в среде


Мы представляем себе мир как среду, в которую помещены сгустки материи (объекты), излучающие или поглощающие потоки энергии и материи. Среда прозрачна для потоков и выступает в роли передаточного звена между объектом и наблюдателем.


Для регистрации объекта (его положения в пространстве, температуры и прочих характеристик) необходим поток энергии или материи, исходящий, или поглощаемый объектом, детектор этого потока и время, чтобы зарегистрировать этот поток. Можно использовать разные потоки: свет, молекулы, нейтроны, но есть условие: поток, чтобы быть зарегистрированным, должен состоять из однотипных элементов.


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

Читать дальше →
Total votes 17: ↑9 and ↓8+1
Comments65

Принцип Анны Карениной в программировании и ИТ

Reading time11 min
Views44K

«Принципу Анны Карениной» посвящено немало научных публикаций и даже отдельная статья в Википедии. Применим к ИТ и программированию? А может он уже работает против вашего проекта?
Читать дальше →
Total votes 39: ↑32 and ↓7+25
Comments51

Суррогаты

Reading time12 min
Views56K
Бизнес не любит:

1. 1С-Франчайзи, программистов 1С вообще, и почти все, что те делают;
2. веб-программистов и компании, создающие и продвигающие сайты, и все продукты их работы;
3. системы менеджмента качества и людей, которые занимаются их внедрением;
4. бухгалтеров и бух.учет;
5. экономистов со всеми их гигантскими экселевскими портянками;
6. внутренние проекты развития, на которые без слез уже смотреть невозможно;
7. Scrum и все эти доски, на которых неделями висят одни и те же стикеры;
8. ТОС, после внедрения которого дефицитов и неликвидов становится еще больше;
9. Контроллинг, который дает цифры позже, чем бух.учет;
10. KPI, адекватность которого приходится доказывать самому себе каждый раз, когда приносят эти цифры;
11. Системы мотивации, которые, как ни крути, «оклад+премия», хоть и названы модными словами, типа «грейд».

Продолжать можно до бесконечности. Никогда не задумывались, почему бизнес всего этого не любит? Или вообще не замечали, что бизнес этого не любит?

При этом, как ни странно, бизнес любит:

1. повышение прибыльности бизнеса за счет автоматизации;
2. увеличение количества лидов и рост оборота за счет правильного продвижения;
3. повышение качества процессов производства и бизнес-процессов;
Читать дальше →
Total votes 91: ↑80 and ↓11+69
Comments122

Information

Rating
Does not participate
Registered
Activity