Golang → go-chi: Генерация URL по имени роута
Пересадил свой блог с gorilla/mux на go-chi и в процессе переделывания обнаружил два момента:
- В go-chi нет генерации урлов из коробки
- gorilla/mux уже не заброшенный проект, у него появилась новая команда мантейнеров
Последний пункт, в принципе, сделал задачу по замене роутера ненужной, ведь я менял его потому, что gorilla/mux не поддерживается, но меня было уже не остановить, ведь процесс программирования тоже важен, а не только конечный результат 😊
Программирование → Санкции (рестрикции) и программирование оффлайн
Почти год уже нахожусь в Крыму и часто сталкиваюсь с вводимыми ограничениями со стороны разнообразных технологических компаний. Например, не работает сайт документации по Go, да и сами релизы этого ЯП не скачиваются без дополнительных манипуляций. Вместо этого или 403-я ошибка, или 404-я
Кроме этого пока ещё нет толком интернета и мобильной связи на даче в горах, мобильная вышка с другой стороны горы и ею же закрывается 😅 Программирование само по себе без интернета приобретает иной уровень сложности, попробуйте, допустим, без поисковика определить программным методом в каком-нибудь питоне или PHP определить время последней модификации файла и тому подобное. Поэтому пришлось озаботиться оффлайн-документаций.
Программирование → Project Euler
Давно не писал сюда, надо исправляться :)
Какое-то время назад наткнулся на Projecteuler.net Штука оказалась очень интересная и до сих пор не отпускает. Если в двух словах, то это проект, где размещена куча задач математического и околоматематического характера для программистов, причём решить их надо таким образом, чтобы компьютер затратил на вычисления не больше минуты. Хотя это условие не совсем корректно, т.к. проект родился в 2001-м году, а компьютеры тогда были несколько другие. И список задач продолжает пополняться. В общем, надо придумать такой алгоритм, который работал бы не слишком долго :)
Помимо решения задачек, собственно, задумал на примере этого проекта немного разнообразить свой запас языков программирования, ведь просто так по книжкам изучить их вряд-ли выйдет, будет только казаться, что всё понимаешь, ровно до тех пор, пока не придётся что-то на этом языке “Х” написать. А на Project Euler этого что-то хватает с головой.
Для любопытных создал репозиторий, в дополнение к тысячам других на том же GitHub-е.
P.S. Присоединяйтесь :) Мой Friend Key, если что, 662120_5b583b32e92f784f26c6bc51a19ce5f0
Тестирование → Автоматизированное тестирование
Это вторая запись из серии, посвящённой тестам, первая находится тут. В ней будет описан процесс установки и настройки функционального тестирования в Symfony2 с использованием Behat и Mink
Для начала, наверное, стоит рассказать о том, что такое эти Behat и Mink, и с чем их едят. Первое - это библиотека, которая интерпретирует человеко-понятные сценарии и, собственно, выполняет их в виде тестов. Второе - это абстрактная библиотека эмулятора браузера, которая содержит множество готовых определений, используемых Behat-ом при разборе тестовых сценариев, характерных именно для общих задач браузера. Помимо этих специфических определений, Mink предоставляет объектно-ориентированных интерфейс, позволяющий общаться с браузером. Сложно, конечно, описать это в двух словах, нужно самому посмотреть и пощупать :)
Сперва создадим пустой проект или же будем считать, что он уже существует. Я не стал особо заморачивать себе голову и скачал с офсайта Symfony Standard 2.1.7 without vendors. Установкой всех необходимых библиотек будет заниматься composer, а запускается сей процесс (установки) буквально одним взмахом левой пятки.
1 | php composer.phar install
|
Ну а теперь займёмся настройкой проекта для тестирования. В первую очередь подправим файл composer.json, добавив в него следующие штуки:
Тестирование → Установка Sahi
Думаю написать пару записей про автоматическое тестирование в веб-разработке. Не потому, что информации по этой теме не хватает, а для того, чтобы у меня это было всегда под рукой :) Сразу всё в одной заметке не опишешь, конечно, так что буду по частям. Сегодняшняя часть будет про Sahi.
Если в двух словах, то это некий драйвер, который будет самостоятельно кликать по кнопкам и ссылкам, заполнять поля форм и выполнять прочие операции на сайте. Самостоятельно - это немного не то слово, будет происходить именно то и только то, что описано в тестовом сценарии. В отличии от других (но не всех, конечно) "эмуляторов" браузеров, Sahi умеет работать с динамическими веб-приложениями, т.е. AJAX и прочий javascript ему по зубам. Ладно, закончим с лирическим вступлением...
Идём на официальный сайт, перемещаемся в раздел с Open Source версией и кликаем на загрузку. Скачиваем. Скачается, скорее всего, jar-файл, но бояться его не стоит, всё отлично запустится и установится, если, конечно, Java JDK (или JRE) уже установлен.
PHP → Локальные проблемы PHP
Подключился на днях к новому проекту на Symfony 2 и начались проблемы :) Проблемы не с симфонией, конечно, а с php, точнее, с его настройками. Скачал проект, установил внешние библиотеки и буквально с первой команды наблюдаю такую красоту в терминале.
News → Работа над ошибками
Начал переработку отходов движка этого блога. Он, конечно, нормально функционирует, но начинал я его в то время, когда знания мои в данной области были крайне скудны. Тот же самый JOIN, например, в SQL запросах был для меня загадкой, а потому приходилось извлекать данные из отдельных таблиц, а потом лепить внутри PHP-кода то, что мне надо.
Хотелось дождаться выхода Zend Framework 2, чтобы поупражняться в нём, но, видимо, не судьба, так что в основе будет лежать первая версия моего любимого фреймворка. Можно было, конечно, затеять деятельность и с Symfony 2, т.к. инструмент реально мощный, но только не вижу целесообразности его применения, отсутствует простота, да и на работе мне его хватает с головой :)
Вот, собственно, и всё. Запись эта нужна мне только в качестве точки отсчёта по времени, более ни для чего.