Блог

Какие программы лучше писать

Интересный тут комментарий появился, в котором меня заинтересовал вопрос - нужен ли опыт работы в крупных проектах? Ну для начала, смотря какой. Если проект крупный, но код дерьмо, то лучше такого опыта не иметь. Неправильно заученный материал для многих – хуже незнания. Просто если вы не знаете, то можете спросить, как правильно. А если вы воспринимаете некорректные технологии за хорошее правило (и хуже того если верите, что это хорошо), то это на много хуже.

Лично я ничего не воспринимаю на веру и для меня нет авторитетов, я человек мыслящий и сам анализирую все и вам советую. Уж много раз говорил вам, не творите себе авторитетов и в том числе мои слова не воспринимайте на безоговорочную веру. Я очень часто анализирую что-то и предполагаю, что может случиться. На пример, я часто пишу, что к концу года будет PS4, но это просто мои мысли, а не факт.

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

uniqueidentifier поле в Transact-SQL

Тип данных uniqueidentifier в Transact-SQL достаточно противный. Если указать некорректное значение, то запрос генерирует ошибку, поэтому прежде чем передавать что-то в запрос, желательно убедиться, что значение верное. Приятней было бы, если бы запрос ничего не возвращал, но это мое желание, которое не совпадает с тем, что сделали в Microsoft. Уверен, что у них были причины, чтобы генерировать ошибку и неплохие.

Короче, все это неважно и я бы не написал об этом, если бы не выполнил вот такой запрос:

select * from session where ID = '1756cb52-5b9e-4c95-8de4-b1ae7e5c2b81test'

Проблема Delphi – несовместимость версий

Вот недавно тут в комментариях увидел в очередной раз, что кто-то до сих пор пишет в Delphi 5. Что заставляет людей оставаться в столь старой версии среды разработки, когда появились на много более мощные версии? Мне кажется, что это несовместимость кода и в особенности компонентов. Когда я писал код на Delphi, то отказался от использования компонентов как раз по причине того, что при выходе новой версии постоянно возникали проблемы.

Один не очень разумный человек как-то выразил удивление, зачем я пишу сам такие вещи как передача данных посети, а не использую компоненты. Дело в том, что если знать, как работает протокол, а главное – понимать как он работает. Написать код не составляет труда. Зато я всегда пишу так, чтобы мой код не привязывался к определенной версии и можно было потом без проблем переходить на следующую. Не говоря уже о том, что передача данных по сети должна быть классом, а не компонентом.

Невидимые компоненты я вообще считаю не очень удачной идеей в программировании, если они не имеют никакого пользовательского интерфейса. В такой компонент можно засунуть например меню, потому что нужен вызов редактора меню (есть какое-то визуальное общение с пользователем). Ну а устанавливать простые свойства типа строка/число/адрес можно и без компоненты.

Как сделать корзину покупателя на сайте

Сегодня получил следующее письмо, которое может быть интересно народу:

Меня интересует такие вопросы:

1. Как реализовать корзину индивидуально для каждого клиента в отдельности. Читал что корзина покупателя должна создаватся из следующих данных: URL клиента и индификатора сессии, так ли это. Если это так то как это сделать?

2. Как лучше реализовать корзину через сессии или через куки что лучше?

3. Я обращал внимание на некоторых сайтах пока не зарегистрируешся некоторые надписи (ссылки) невидны на сайте, но после регистрации они появляются. Как это делают?

Сайт делаю в Adobe Dreamweaver 8, стоит Денвер на компе, phpMyAdmin, ОС Vista.

Михал, если бы вы решали эти задачи, то как бы вы поступили мне интересно узнать ваше мнение. Я хочу реализовать это на языке PHP, возможно использование JavaScript.

Дерьмовый код

Интересная критика одного программиста. Он увидел MVC проект, который написан с использованием Entity Framework и выдал критику - дерьмово написано, и нахрена использовать дебильную EntityFramework, когда есть ADO.NET.

Вы знаете, я сам не люблю EntityFramework и уже много раз говорил, что Linq только портит код, а именно Linq чаще всего используют с EntityFramework. Но критиковать код только за то, что кто-то не знает этот Framework и любит использовать чистый ADO.NET - позорно и не профессионально. Я не люблю Linq, но если какой-то проект написан с его использованием успешен, отлично работает и без проблем поддерживается, то мне насрать, что там используется Linq. Критиковать за это нельзя.

Оператор goto в PHP

На PHP пишу уже давно, но только сегодня узнал, что начиная с версии 5.3 этот язык начал поддерживать goto оператор. Я помню еще в 90-х годах, когда программировал под MS Dos уже среди программистов ходило правило - не использовать goto. Это зло, которое портит программы. С тех пор утекло уже много лет и я никогда не пользовался goto под Windows ни в одном языке программирование.

Удивило то, что этот оператор появился в PHP 5.3. Я бы понимал, если бы он появился в первых версиях, а в 5.3 его убрали, как настоящее зло, но наоборот... Неужели мир перевернулся и переходы по меткам стали добром?

Unit тесты

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

Заметка получилась достаточно большая, поэтому я ее решил поместить в статьи, да и проще будет ее там потом найти.

Переход с WinForms на MVC

Первая реализация ASP.NET использовала WebForms – самая ужасная идея для Web программирования. На то, чтобы это понять, у Microsoft ушло некоторое время, но за это время народ успел уже создать сайты на этой технологии. Но вот Microsoft уже одумалась и уже давно предлагает программистам более интересный и качественный вариант – MVC (Model View Controller).

Но только проблема в том, что старый вариант C# и ASP.NET использовали URL в виде ИмяФайла.aspx, после чего идут параметры страницы. А вот в MVC предлагается немного более гибкий вариант controller/action. Controller определяет файл, который будет обрабатывать запрос, а Action – это имя метода. Это очень удобно, но что делать, если у вас уже есть сайт на WebForms и не хочется терять старые URL, чтобы не терять ссылки, которые уже набраны. Ведь если изменить URL страниц, то все, что ссылается может быть разрушено.

Программирование игр для iPhone

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

Давно я не работал с графикой особенно OpenGL, поэтому первые шаги давались с трудом. Потом все шло со скрипом, потому что не хватало знаний в Objective-C. Но по мере набора этих знаний все зашевелилось на много быстрее. Сегодня закончил класс аниматора, который должен амнистировать спрайты и сразу же произошел скачок в моей работе.

Ошибки в Objective-C

Играюсь с Objective-C, изучаю его и заодно пишу пару небольших примеров. Один из них связан с интернет программкой, другой – графический движок для себя (вспоминаю OpenGL). В одном месте у мне понадобилось часто использовать однообразные объекты, причем очень много раз. Логично стало не загружать их каждый раз и не освобождать память, а написать кэш, который будет сохранять данные для меня.

В качестве кэша я сделал статичную переменную для менеджера кэша, а сами данные решил размещать в NSMutableDictionary. Это что-то типа хэша. Переменная для хэша была объявлена у класса, а метод получения данных из него выглядит следующим образом:

О блоге

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

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

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

Пишите мне