Компания Facebook выпустила собственный язык программирования, который они назвали Hack. Достаточно громкое название.
Hack основан на PHP и может даже жить с ним одновременно в одном коде, но самое главное отличие нового языка - в нем поддерживается строгая типизация. В PHP программисту не нужно думать о типе данных, все преобразовывается на лету и не нужно думать о том, с числом вы работаете или со строкой. Это создает удобство и спорную простоту, а на мой взгляд, добавляет только проблем, потому что компилятор не может проверить код на наличие ошибок не корректной работы с типами данных.
С точки зрения простоты - программисту все равно нужно думать о типах данных и понимать, какие они бывают и как работают, иначе просто и быть не может. Так что отсутствие необходимости писать тип не дает особо преимуществ.
Допустим, что нужно получить количество записей из таблицы, сгруппированных по дням. Такое решается достаточно просто, нужно только обрезать время и сгруппировать строки:
select convert(varchar(10), StartDate, 102) as StartDate, count(*) from TableName group by convert(varchar(10), StartDate, 102) order by 1 desc
Блин, ну что Microsoft не спится. Был WCF, работал отлично и можно было создавать даже REST сервисы. Но вдруг появляется ASP.NET Web API. Постоянно у них там что-то меняется полностью в корне и потом переделывай свои приложения. Я понимаю, что новые их технологии супер пупер и их нужно любить и целовать, но реально, уже задолбался изучать, что они там нового создали.
Пошел читать, что это за зверь ASP.NET Web API и зачем он вообще нужен и почему не смогли обойтись WCF. Я уверен, что новый ASP.NET Web API крутой, но просто уже такой зоопарк технологий, что голова раскалывается.
Я уже писал, что при работе с базами данных предпочитаю Dapper и его я достаточно серьезно затрагивал в своей электронной книге по большим сайтам. Вчера нашел в Dapper большой недостаток для тех, кто использует varchar строки.
Не все еще перешли на Unicode и некоторые до сих пор используют varchar, хотя давно уже пора перейти на nvarchar. Проблема в том, что Dapper в качестве строк использует как раз nvarchar, а Transact-SQL оказывается не очень дружит с преобразованиями строк.
Больше всего ненавижу, когда WEB программисты пишут что-нибудь подобное в самом начале своего CSS файла:
html, body, div, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, pre, form, table, th, td, img {
margin: 0;
padding: 0;
}
Самое страшное в этом списке - это тэг <p>. Он был создан для того, чтобы у него были отступы и убивать их в самом начале CSS, а потом переопределять в каждом файле - самоубийство.
У меня несколько сайтов и каждый из них я не планировал расширять слишком сильно. В планах было делать небольшие сайты, поэтому я почти на всех из них использую просто процедурное программирование.
Не знаю почему, но при создании сайтов, я не воспринимаю ничего, кроме MVC. Я сделал как-то funniestworld.com на Web Forms и мне что-то не очень понравилось.
В PHP наоборот, я без проблем могу писать без MVC, потому что мне не нравились те MVC проекты, которые я видел. Я видел только два и если честно, то даже не помню, что они из себя представляли. Это было 4 года назад, когда я работал в небольшой компании PPX.
Сейчас вишу с нуля новый проект на PHP и пишу код в NetBeans. Обычно я игнорировал предупреждения, потому что код моих сайтов уже написан давно и написан в блокноте. Когда же я открыл впервые свои файлы в NetBeans, то был в шоке от того, сколько предупреждений нашла среда разработки.
Любое обращение к $_GET, $_GLOBAL – предупреждение. Любой if без фигурных скобок – тоже предупреждение. Это не ошибки, это все предупреждения, которые немного раздражают.
В принципе, все эти предупреждения имеют смысл. А так как я не люблю предупреждения и считаю, что в коде все должно быть чисто, сейчас решил в новом проекте делать все максимально чисто, чтобы не было никаких желтых лампочек в коде.
На работе запускаю новый сайт и на нем используется библиотека, написанная другим программистом (точнее несколькими программистами) в компании. Там используются ресурсы и что-то еще, что требует программки AL.exe, которая входит в состав Windows SDK, который оказался не установленным на серверах, которые доступны клиенту и которые компилируют проект для публикации на рабочих серверах.
На пошлой неделе в среду начал пытаются скомпилировать сайт и как раз эта библиотека не компилируется. Поиски Windows SDK привели к тому, что он существует в качестве отдельного установщика, но только версии 7.0, а мне нужна 8.0. Я вроде бы нашел установщик этой версии, но он не standalone и требует установки соединения с интернетом.
Мне кажется, что компоненты и различные библиотеки не должны поддерживать ничего, кроме двух последних версий IDE или языка. Если программисты не переходят на новую версию среды разработки, то они должны будут вынуждены использовать и старые версии библиотек.
Я видел большое количество библиотек и много отличных решений, которые утонули и даже умерли в сплошных IF, где проверялась версия IDE или языка. Не повторяйте подобных ошибок.
Я считаю, что нужно не стеснятся убивать старое в коде и развиваться.
Уже начали появляться первые транзакции. Народ начинает платить за книгу, которую я собираюсь разослать завтра всем, кто уже оплатил и на самом деле не так много заказов. Скажу так, чуть больше 10 пока.
Но что меня удивило, так это количество оплат через yandex деньги. Я сам ими почти не пользовался, потому что Webmoney кажется более распространен и его принимают практически везде. Я даже не стал вешать свой Яндекс.Деньги кошелек. Его я опубликовал на много позже и что удивительно, количество заказов через эту платежную систему за день обошло заказы с WebMoney.