В питоне аттрибуты класса можно сколько угодно модифицировать во время работы, и изменения видны всем объектам этого класса и других подклассов. Под катом — одно полезное применение этого факта.
Рубрика «никто не читает теги» - 24
Изменяемые свойства классов в питоне: польза для дела и мелкого хулиганства
2017-05-09 в 9:01, admin, рубрики: python, ненормальное программирование, никто не пишет в теги, никто не читает теги, ооп, этот тег -- ложьФункциональное программирование в JavaScript с практическими примерами
2017-04-28 в 11:20, admin, рубрики: javascript, JS, Блог компании Mail.Ru Group, монады, никто не читает теги, Программирование, Проектирование и рефакторинг, функциональное программирование
Функциональное программирование (ФП) может улучшить ваш подход к написанию кода. Но ФП непросто освоить. Многие статьи и руководства не уделяют внимания таким подробностям, как монады (Monads), аппликативность (Applicative) и т. д., не приводят в качестве иллюстраций практические примеры, которые могли бы помочь нам в повседневном использовании мощных ФП-методик. Я решил исправить это упущение.
Хочу подчеркнуть: в статье сделан упор на том, ЗАЧЕМ нужна фича Х, а не на том, ЧТО такое фича Х.
Сравнение производительности версий PHP
2017-04-18 в 11:26, admin, рубрики: php, Анализ и проектирование систем, Блог компании Mail.Ru Group, высокая производительность, никто не читает теги, Проектирование и рефакторинг, производительностьВ этой статье мы рассмотрим результаты нескольких бенчмарков, начиная с PHP 5 и вплоть до экспериментальной JIT-ветки (сейчас в разработке). На момент написания не было известно, появится ли до PHP 8 ещё какая-то основная версия, например PHP 7.2. Но логично предположить, что возможности экспериментальной ветки как минимум будут включены в PHP 8.
$PHP не нужен*
2017-04-12 в 7:34, admin, рубрики: node.js, php, вентилятор, никто не читает теги, нужно больше фрейворков, разработка, фреймворкиХорошо известно, что PHP — это мёртвый язык программирования и его 22-летняя экосистема фактически стала бесполезна, когда появился Node и новые асинхронные фреймворки на его основе. Превосходство Node очевидно, потому что все знают, что однопоточные асинхронные программы более лучше по умолчанию. И быстрее.
«Но Саймон! Почему?!", вы, вероятно, прокричите увидев этот текст на экране. И вот почему:
Перспективы трудоустройства
PHP-разработчики не пользуются спросом. По прошествии 22 лет, все компании, использующие PHP, сразу же отказались от него, как только был выпущен Node v0.0.1, потому что этот стек разработки мгновенно стал лучшим. Кроме того, всем известно, что для успешного запуска (забудем про Slack) вам нужно создавать веб-интерфейсы на Node, а данные сохранять в MongoDB.
Иначе просто невозможно добиться успеха.
Приведем немного научных™ фактов, чтобы доказать эти утверждения:
$заголовок = ‘PHP-разработчики не могут найти работу чтобы содержать свои семьи’;
Шаблоны проектирования с человеческим лицом
2017-04-10 в 12:49, admin, рубрики: php, Анализ и проектирование систем, Блог компании Mail.Ru Group, никто не читает теги, Проектирование и рефакторинг, Разработка веб-сайтов, шаблоны проектирования
Шаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.
Как сказано в Википедии:
В программной инженерии шаблон проектирования приложений — это многократно применяемое решение регулярно возникающей проблемы в рамках определённого контекста архитектуры приложения. Шаблон — это не законченное архитектурное решение, которое можно напрямую преобразовать в исходный или машинный код. Это описание подхода к решению проблемы, который можно применять в разных ситуациях.
Будьте осторожны
- Шаблоны проектирования — не «серебряная пуля».
- Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
- Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.
В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков.
Что я изменил бы в Go
2017-03-30 в 9:01, admin, рубрики: Go, haskell, Rust, Блог компании Mail.Ru Group, высокая производительность, Компиляторы, никто не читает теги
В течение полугода я программировал преимущественно на Go. И я разочарован. По двум причинам:
- В Go особенно трудно придерживаться функциональной парадигмы. По сути, язык препятствует функциональному программированию. Меня это разочаровало, потому что в императивном коде, который я пишу, большое количество шаблонных кусков. К тому же, как мне кажется, в этом случае выше риск ошибок, в отличие от использования функциональных абстракций.
- Я считаю, что Go упускает свои шансы. В программных языках появились замечательные нововведения (особенно в сфере проверки и вывода типов — type inference), делающие код безопаснее, быстрее и чище. Мне хотелось бы, чтобы Google использовала своё влияние, чтобы поддержать некоторые из этих идей.
Я не первый, кто воспринимает Go подобным образом. Вот публикации других людей, разделяющих мои впечатления:
- Why Go Is Not Good
- Everyday hassles in Go
- Three Months of Go (from a Haskeller’s perspective)
- The Language I Wish Go Was
Ниже я добавлю свои соображения. Чтобы показать, как именно можно улучшить Go, я буду сравнивать его с Rust.
Блокируй меня полностью — с любовью от «Ревизора»
2017-03-28 в 12:26, admin, рубрики: блокировки сайтов, верной дорогой идем товарищи, запреты, никто не читает теги, ревизор, Регулирование IT-сектора, репрессии, Роскомнадзор, скоро всех вылечат, списки, статистика, только у Мицгола больше тегов, цензураМы живем в удивительное время и жители остальных времен нам немного завидуют. На фоне казалось бы вполне разумных заявлений "Роскомнадзор планирует изменить подход к блокировке сайтов" происходят и довольно непонятные указания и распоряжения.
В частности рассылаются письма следующего содержания (интимные места письма замазаны в графическом редакторе):
Читать полностью »
Микрооптимизации важны: предотвращаем 20 миллионов системных вызовов
2017-03-27 в 8:26, admin, рубрики: ruby, syscalls, Анализ и проектирование систем, Блог компании Mail.Ru Group, высокая производительность, никто не читает теги, оптимизация, Проектирование и рефакторинг, метки: syscalls
Эта публикация — логическое продолжение поста «Как настройка переменной окружения TZ позволяет избежать тысяч системных вызовов». Здесь мы рассмотрим характерную ситуацию, когда микрооптимизации (например, удаление системного вызова) очень сильно влияют на производительность.
Вызов функций Go из других языков
2017-03-21 в 8:46, admin, рубрики: api, C, Go, python, shared library, Блог компании Mail.Ru Group, никто не читает теги
С версии 1.5 компилятор Go поддерживает несколько режимов сборки, определяемых флагом buildmode
. Их ещё называют режимами исполнения Go (Go Execution Modes). С их помощью go tool
может компилировать пакеты Go в нескольких форматах, включая архивы и библиотеки общего пользования Go (shared libraries), архивы и библиотеки общего пользования Си, а с версии 1.8 — и динамические плагины Go.
В статье мы рассмотрим компилирование пакетов Go в библиотеки Си. В этом режиме сборки компилятор генерирует стандартный бинарный файл объекта (shared object) (.so), передавая функции Go в качестве API в стиле Си. Мы поговорим о том, как создавать библиотеки Go, которые можно вызывать из C, Python, Ruby, Node и Java.
Весь код доступен на GitHub.