Как стать автором
Обновить
-10
0

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

Отправить сообщение

System Design 101

Уровень сложностиСредний
Время на прочтение42 мин
Количество просмотров72K



О сложных системах простыми словами.


В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.


Выражаю благодарность Анне Неустроевой за помощь в редактировании материала.


Возможно, немного другой формат шпаргалки покажется вам более удобным.


System Design (сборник на английском языке).

Читать дальше →
Всего голосов 79: ↑79 и ↓0+79
Комментарии17

Двадцать пять лет curl

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров9.7K

Когда жить интересно, время летит незаметно. 20 марта curl исполнилось 25 лет.

Проект curl начался очень скромно: это был небольшой переименованный инструмент передачи URL, о котором почти никто не знал в первые годы его существования.

▍ Я в то время


Я создал самый первый релиз curl, и с тех пор выпускал пакеты каждого нового релиза. В день, когда я впервые выпустил curl, мне было 27 лет, я работал разработчиком ПО в Frontec Tekniksystem, где в основном занимался разработкой встроенных систем для более крупных шведских компаний-разработчиков. Например, в течение нескольких лет в конце 90-х я работал над довольно большим количеством проектов для телекоммуникационного гиганта Ericsson.

Мне нравились программирование и разработка с тех пор, как в середине 80-х у меня появился первый компьютер. В 1990-х у меня уже был устоявшийся ежедневный график: когда моя вторая половина ложилась спать, я продолжал бодрствовать, час-два занимаясь разработкой. По сути, именно так мне удавалось находить время для своих проектов в первые несколько десятков лет. Меньше сна. Меньше других дел.
Читать дальше →
Всего голосов 83: ↑83 и ↓0+83
Комментарии15

Что такое логическое программирование и зачем оно нам нужно

Время на прочтение17 мин
Количество просмотров43K

У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал)

Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас.


Можно по-разному разделить языки программирования на группы (часто их называют парадигмами программирования), например, вот так:


  • структурное: программа разбивается на блоки — подпрограммы (изолированные друг от друга), а основными элементами управления являются последовательность команд, ветвление и цикл.
  • объектно-ориентированное: задача моделируется в виде объектов, которые отправляют друг другу сообщения. Объекты обладают свойствами и методами. Абстракция. Инкапсуляция. Полиморфизм. Ну в общем, все в курсе.
  • функциональное: базовым элементом является функция и сама задача моделируется в виде функции, а, точнее, чаще всего в виде их композиции, если f(.) и g(.) — это функции, то f(g(.)) — это их композиция.
  • логическое: вот тут, как правило, начинается феерия — если про первые три написаны сотни статей, книг, обзоров, презентаций и учебников, то здесь мы в лучшем случае видим что-то про Prolog и разработки времён Pink Floyd и Procol Harum (ну хоть с музыкой им тогда повезло) и на этом история заканчивается.

Вот эту оплошность я и собираюсь сегодня исправить.


Важнейший тезис этой статьи:


Логическое программирование != Prolog.

И вообще последний вам скорее всего не нужен. А вот первое вполне может быть.


Структура статьи:


  • Что такое Пролог и почему он вам скорее всего не нужен
  • Зачем оно надо, или краткое введение в Answer Set Programming
  • Решаем задачи на ASP
  • Комбинаторная оптимизация
  • Вероятностное ЛП: ProbLog
  • ЛП на классической логике FO(.) и IDP
  • Sketched Answer Set Programming
  • Экспериментальный анализ
  • Тестирование и корректность программ
  • Заключение
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии22

Информация

В рейтинге
4 259-й
Зарегистрирован
Активность