Зачем нужны PHP фреймворки?
PHP фреймфорки сейчас в большом почёте. Если PHP программист освоил один из популярных фреймворков он уже не просто PHP программист а, например, Zend Developer или Yii Guru или CodeIgnitor Ninga.
По роду деятельности я часто сталкиваюсь с разного рода фреймворками, но до сих пор не нашел ни одного который захотелось бы использовать. CodeIgnitor - вырубает напрочь возможность использования GET переменных, Zend Framework - красивый, масштабируемый, но все-же это монстр, Yii - быстрый, но я не до конца понял его соглашения об именах и не люблю PDO - идея хороша, но реализация - кака. Наверно поэтому, создавая проекты с нуля я обычно использую свои старые наработки, в котрых использую подходы подсмотренные мной в других фреймворках, и которые постепенно выросли тоже в некое подобие фреймфорка, который отражает мой подход к тому как я вижу идеальный каркас приложения.
Да, фреймворки сильно упрощают работу в команде, ускоряют создание готового продукта, но есть и обратная сторона - продукт становится более тяжеловесным - большинство возможностей фреймворка никогда не будут использованы, работа программиста от созидания новых вещей сводится к тупому применению готовых паттернов для достижения результата. Формат url запросов сильно ограничивается выбранным фреймворком.
Необходимость создания PHP Фреймворков возникла потому, что сам PHP не накладывает каких-либо ограничений на структуру программы, а полная свобода никогда не была нужна основной массе людей, они хотят жестких рамок, четких правил, готовых инструкций. Чтобы прийдя на работу ничего не нужно было творить - тупо сиди и кодируй.
Именно из-за таких людей мне не нравятся многие фреймворки - фреймворк может быть идеален, но посмотрев на код, который на нем можно написать и который при этом оказывается работоспособным становится страшно, ведь если бы этот человек не освоил данный фреймворк, может быть его бы быстрее уволили и мир стал бы чуточку лучше... Столько говна создается используя хорошие фреймворки, что иногода думаешь, что лучше бы таких фреймворков не было. Фреймворк нужен для того чтобы можно было использовать программистов начального уровня для выполнения сложных проектов.
Это как боевые искусства - карате, ушу, айкидо - все это тоже фреймворки - наборы двигательных паттернов для людей желающих добиться какой-либо цели. Эти паттерны отшлифовывались веками и их легко можно передать от ученика мастеру не используя сложной литературы.
Правда вот беда, чтобы создать свой фреймворк ты должен сам стать таким мастером, чтобы доказать эффективность своего подхода, доказать способность передавать эту эффективность другим людям. Поэтому я сейчас на распутье - или развивать свой фреймворк или убить его об стену и перейти на какой нибудь другой. Но закапывать свой фреймворк как то не хочется - он прекрасно работает для меня и моей команды уже много лет. Всё что нужно это хорошая документация - а её создать бывает порой сложнее чем сам фреймворк.
Впрочем, поживём - увидим...
Play Маркет
Забавное дело, опубликованная несколько дней назад простейшая программа Mono Bluetooth Router уже обошла по числу пользователей программу Super Words которая там уже пол года. Впрочем, ничего удивительного - обе программы совершенно разные и имеют совершенно разные целевые аудитории.
Экстремальное обучение или как я прохожу тесты на oDesk
Тестирование -- это замечательная возможность проверить свои знания в той или иной предметной области. Последнее время тестирование часто используется иностранными компаниями для проверки знаний своих сотрудников и потенциальных работников. Да, при всех своих недостатках, хорошие тесты позволяют весьма объективно оценить уровень знания специалиста в той или иной области. Я сам обожаю различные тесты и часто их прохожу. Особенно мне нравятся тесты которые предоставляет площадка oDesk.
Как я заметил по поисковым словам используемым для захода на мой сайт по слову oDesk многих интересуют ответы на тесты oDesk. Если вы перешли на мой сайт в поисках ответов - спешу вас разочаровать - ответы на тесты я никогда не выкладываю. Просто потому, что полезнее создать такие ответы самостоятельно, чем пользоваться чужими. Но это не значит, что у меня их нет - во время прохождения теста, я всегда делаю скриншоты вопросов, чтобы потом проверить правильно ли я ответил на вопрос или нет и подготовиться по тем темам, которые я не знаю.
Такая практика позволяет эффективно обнаружить свои слабые стороны и при необходимости подтянуть упущенное. Важно исправлять собственные ошибки самостоятельно. Как оказывается, это очень здорово повышает собственный уровень. Кроме того, используя тесты, довольно просто из полного нуля по какому либо предмету стать квалифицированным специалистом. Проходя тест, например, по Objective C, если до этого вы не программировали под iOS вы непременно этот тест провалите, но за то, у вас на руках будет готовый список вопросов требующих проработки -- готовая инструкция к началу поиска информации. Такое вот получается экстремальное тестирование.
Минимальное время через которое можно пересдать тест - 30 дней. Количество вопросов в тесте - 40. Это значит, разбирая по одному, двум вопросам ежедневно, можно хорошо подготовиться к пересдаче. После такой подготовки, уже, вполне, можно сдать тест на троечку. Чтобы сдать тест на четвёрку мне требуется обычно ещё месяц разбора полётов. На пятёрку, я, как правило, уже не сдаю - становится не интересно, ведь в тесте главное не оценка а реально приобретённые знания.
На oDesk есть огромное количество тестов, а это значит можно стать специалистом практически в любой области, от программирования до иностранных языков. Кстати, тесты там гораздо более серьёзные чем на том же Brainbench. Основное достоинства тестов на oDesk - они ни чему вас не обязывают, абсолютно бесплатны, а вот пользы они могут принести очень много, ведь помимо потенциально полезных знаний по ним вас могут найти и вполне реальные клиенты, чтобы заплатить вам вполне материальные денежки.
Правда, наличие успешно сданных тестов ещё не гарантирует, что вы стали классным специалистом по данной предметной области, но это по крайней мере гарантирует, что вы хорошо поработали и знаете предметную область в рамках теста, а это значит, что можно двигаться дальше, и смело начинать работать с реальными задачами, ведь, не одно обучение не заменит реальный опыт работы.
Проигрывание звука через Монофоническую Bluetooth Гарнитуру на Андроид
Когда я впервые приобрел телефон на Android, то с удивлением обнаружил, что теперь я могу использовать свою bluetooth гарнитуру только для телефонных звонков, а ведь на Nokia её можно было без проблем использовать как мне захочется. На телефоне под управлением самой популярной мобильной операционной системы невозможно, например, во время езды на машине слушать подкасты через гарнитуру. Или, например, по пути на работу наговорить в диктофон пришедшую в голову идею. Или лечь на диван с гарнитурой и слушать как телефон тебе читает книжку через синтезатор речи, да и обычные аудио книги можно слушать только через проводную гарнитуру. Без этих функций купленная гарнитура долгое время пылилась на полке без дела. Ради одного-двух звонков таскать на ухе этот гаджет весь день не было решительно ни какого смысла.
Для того чтобы использовать bluetooth не только для звонков требуется специальная стерео гарнитура, которая как правило, лишена микрофона а, кроме того, стерео гарнитура закрывает оба уха, что, на мой взгляд, является более опасным для использования в городской среде.
Почему идеологи андроид не разрешают слушать музыку через монофоническую блютуз гарнитуру? Почему бы не сделать эту опцию настраиваемой? Возможно, создатели системы боятся, что плохое качество звука через гарнитуру испортит впечатление о системе андроид в целом? Но ведь, при прослушивании голоса через гарнитуру качество звука не критично, а стерео звучание вообще не нужно.
Чтобы обойти данное ограничение а, было, сначала хотел сделать собственный простой диктофон-плеер для проигрывания звука и записи голоса через bluetooth гарнитуру. Но потом, случайно, обнаружил, что приложив небольшие усилия можно заставить уже существующие программы работать через bluetooth. В результате работа над универсальным bluetooth-диктафоном-плеером была отложена и создана... тада... программа Mono Bluetooth Router.
Помимо основной своей задачи - активации bluetooth соединения для проигрывания музыки, программа умеет следующее:
- восстанавливает блютуз звук после телефонного звонка
- проигрывает звуковой сигнал для подтверждения подключения
- восстанавливает уровень звукового сигнала после использования программы
- показывает состояние блютуз звука в строке состояния.
Если у кого нибудь из читателей этого блога есть монофоническая bluetooth гарнитура - пожалуйста, попробуйте установить, интересно будет ли программа работать на различных моделях телефонов и на каких она работать не будет. И конечно, хотелось бы побольше положительных отзывов на маркете! Заранее спасибо!