Блог

Язык программирования Hack

Компания Facebook выпустила собственный язык программирования, который они назвали Hack. Достаточно громкое название. 

Hack основан на PHP и может даже жить с ним одновременно в одном коде, но самое главное отличие нового языка - в нем поддерживается строгая типизация. В PHP программисту не нужно думать о типе данных, все преобразовывается на лету и не нужно думать о том, с числом вы работаете или со строкой. Это создает удобство и спорную простоту, а на мой взгляд, добавляет только проблем, потому что компилятор не может проверить код на наличие ошибок не корректной работы с типами данных. 

С точки зрения простоты - программисту все равно нужно думать о типах данных и понимать, какие они бывают и как работают, иначе просто и быть не может. Так что отсутствие необходимости писать тип не дает особо преимуществ. 

Как получить выборку с 6 до 6 вечера

Допустим, что нужно получить количество записей из таблицы, сгруппированных по дням. Такое решается достаточно просто, нужно только обрезать время и сгруппировать строки:

select convert(varchar(10), StartDate, 102)  as StartDate, count(*)
from TableName
group by convert(varchar(10), StartDate, 102)
order by 1 desc

WCF или ASP.NET Web API

Блин, ну что 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 оказывается не очень дружит с преобразованиями строк.

Отступы в CSS

Больше всего ненавижу, когда 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 на PHP

У меня несколько сайтов и каждый из них я не планировал расширять слишком сильно. В планах было делать небольшие сайты, поэтому я почти на всех из них использую просто процедурное программирование. 

Не знаю почему, но при создании сайтов, я не воспринимаю ничего, кроме MVC. Я сделал как-то funniestworld.com на Web Forms и мне что-то не очень понравилось. 

В PHP наоборот, я без проблем могу писать без MVC, потому что мне не нравились те MVC проекты, которые я видел. Я видел только два и если честно, то даже не помню, что они из себя представляли. Это было 4 года назад, когда я работал в небольшой компании PPX. 

Предупреждения в NetBeans с PHP

Сейчас вишу с нуля новый проект на PHP и пишу код в NetBeans. Обычно я игнорировал предупреждения, потому что код моих сайтов уже написан давно и написан в блокноте. Когда же я открыл впервые свои файлы в NetBeans, то был в шоке от того, сколько предупреждений нашла среда разработки. 

Любое обращение к $_GET, $_GLOBAL – предупреждение. Любой if без фигурных скобок – тоже предупреждение. Это не ошибки, это все предупреждения, которые немного раздражают.  

В принципе, все эти предупреждения имеют смысл. А так как я не люблю предупреждения и считаю, что в коде все должно быть чисто, сейчас решил в новом проекте делать все максимально чисто, чтобы не было никаких желтых лампочек в коде. 

Сложно найти standalone установщик Windows SDK

На работе запускаю новый сайт и на нем используется библиотека, написанная другим программистом (точнее несколькими программистами) в компании. Там используются ресурсы и что-то еще, что требует программки AL.exe, которая входит в состав Windows SDK, который оказался не установленным на серверах, которые доступны клиенту и которые компилируют проект для публикации на рабочих серверах. 

На пошлой неделе в среду начал пытаются скомпилировать сайт и как раз эта библиотека не компилируется. Поиски Windows SDK привели к тому, что он существует в качестве отдельного установщика, но только версии 7.0, а мне нужна 8.0. Я вроде бы нашел установщик этой версии, но он не standalone и требует установки соединения с интернетом. 

Поддержка старых версий в компонентах

Мне кажется, что компоненты и различные библиотеки не должны поддерживать ничего, кроме двух последних версий IDE или языка. Если программисты не переходят на новую версию среды разработки, то они должны будут вынуждены использовать и старые версии библиотек.

Я видел большое количество библиотек и много отличных решений, которые утонули и даже умерли в сплошных IF, где проверялась версия IDE или языка. Не повторяйте подобных ошибок. 

Я считаю, что нужно не стеснятся убивать старое в коде и развиваться.

Yandex более популярен, чем Webmoney

Уже начали появляться первые транзакции. Народ начинает платить за книгу, которую я собираюсь разослать завтра всем, кто уже оплатил и на самом деле не так много заказов. Скажу так, чуть больше 10 пока.

Но что меня удивило, так это количество оплат через yandex деньги. Я сам ими почти не пользовался, потому что Webmoney кажется более распространен и его принимают практически везде. Я даже не стал вешать свой Яндекс.Деньги кошелек. Его я опубликовал на много позже и что удивительно, количество заказов через эту платежную систему за день обошло заказы с WebMoney. 

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне