Блог

Впервые за Python

В нашей компании (да и вообще наверно во всей северной америке) очень ответственно относятся к качеству продуктов. Каждая страница и каждый новый сайт, который мы делаем, обазательно тестируется и не только руками, но и автоматически. Чтобы тестировать сайты мы используем selenium, который отлично подходит для этих целей и поддерживает множество различных языков программирования.

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

Сегодня мне дали задание написать модуль для HTML странички с формой, вокруг которой в ближайшее время начнет строится небольшой сайт. Не буду же я писать свой единственный небольшой модуль на PHP, поэтому пришлось тоже выбирать Python и разбираться в нем. Изучать язык подробно я не собираюсь, потому что за день работы не получил удовлетворения от программирования на нем, но основы знать придется, чтобы дальше писать тести.

Перетягивание Drag&Drop в .NET Framework

Недавно от одного из пользователей компонента Heapar .NET FileListView Control получил вопрос о том, как можно создать перетаскивание файлов в этом компоненте. Я пообещал написать небольщую заметку и рассписать, как реализовать эту возможность, ведь это очень просто.

Сказано, сделано, и конечно же опубликовано на блоге. Я думаю, что заметка будет интересна все программистам, использующим .NET Framework, потому что в ней описываются общие принципы, которые используются при перетягивании в большинстве случаев. Заметку можно прочитать здесь: Drag&Drop в.NET на примере FileListView.

Что такое .NET Framework?

Сегодня получил простой но очень интересный вопрос: Насколько я понимаю С# для платформы .NET. Я не особо понимаю что это за платформа такая. Извиняюсь за глупый вопрос: в обычной виндовс программа, созданная на языке С# будет работать? Для этого кажется нужно только установить NET Framework? (орфография не мой :))

Классические программы используют функции Windows. Преимущество:

1. Программа выполняет код ОС напрямую и работает достаточно быстро

Недостатки Win32:

1. Код привязан к оборудованию. Проблемы решаются сложным введением HAL уровня, который становится прослойкой между кодом системы не связанным с оборудованием и кодом привязанным к оборудованию. Этот уровень уже есть в ОС Windows и кажется в Linux, но реализован не идеально, поэтому классические программы все равно привязаны к определенному железу. Если программа скомпилирована для Intel процессора, то она не сможет работать на абсолютно другой архитектуре.

Gantt Chart Control .NET Финальный релиз

Вчера я пришел к выводу, что Gantt Chart Control .NET готов к тому, чтобы назваться первой финальной версией. Разработка компонента будет продолжаться и его функции будут наращиваться, ведь этот процесс бесконечный. Но это не значит, что нужно откладывать релиз. Поэтому вчера я его выложил в свободный для тестирования доступ. Ну а чтобы пользователи тоже не находились в постоянном ожидании новых функций, я как всегда предлагаю год бесплатных обновлений. Более подробно о компоненте на английской версии сайта: Gantt Chart Control .NET или на русской версии: Диаграмма Гантта

Что еще можно сказать? Из последних новостей проектов - я закрыл форум на сайте Hackish Code, причем на обеих версиях и немного улучшил (на мой вкус) дизайн.

Кучу заметок написал на блоге Смешной мир. Все, что не касается ИТ я закидываю туда.

Gantt Chart

На последней работе я занимался разработкой компонента для визуализации диаграммы Гантта (Gantt Chart). Подобные диаграммы используются в приложениях класса менеджеров проектов или планировании. Если ты знаком с Microsoft Projects, то работал с диаграммами, когда планировал время выполнения задач.

Мне посчастливилось разрабатывать этот компонент на Delphi. Жаль, что я не сохранил себе исходные коды (я никогда не беру исходные коды на работах, где работаю, даже написанные мной, потому что они принадлежат работодателю), но с другой стороны – это даже плюс. Недавно я решил написать собственную реализацию этого компонента с нуля и под .NET. Сегодня я выложил первую бета версию для всеобщего юзания - .NET Gantt Control.

К чему я это? Вот не знаю почему, но на .NET мне намного удобнее проектировать подобные вещи. Не знаю почему, но мне интереснее именно .NET разработка. Я так включился в работу, что написал весь этот код за четыре вечера.

Когда я разрабатывал этот же компонент на Delphi, то я получил достаточно интересный опыт. Тогда я вообще не знал, что такое диаграмма Ганта, как она выглядит и как ее можно

Привыкание к ASP.NET

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

Где-то около года назад, когда я впервые встретился с этим языком, то он мне показался очень неудобным. Вроде бы все знакомо, уже известные мне операторы, вроде бы красивый и понятный синтаксис, но как-то все же неудобно. Я понимаю, что я очень долго писал на PHP и поэтому не особо был критичен в своих высказываниях в отношении ASP.NET. И не зря. Не знаю, когда это произошло, но прошел год, а я без проблем уже сроднился с технологией MS.

Когда мне нужно быстро набросать какой-то сайт, то я все же использую PHP, но и ASP.NET больше не пугаюсь. Не знаю почему, но на ASP.NET мне проще отделять логику от представления. За окном 2009-й год, а на PHP я до сих пор отделяю логику от представления с помощью include, а в .NET есть такие вещи как Master Page и темы.

Отделение логики, отображения и данных

Несколько лет назад я читал книгу "Совершенный код" и выразил свое несогласие с автором, когда он говорил, что нужно писать не на языке, а с использованием языка. Как пример автор приводил утверждение, что если в языке нет объектов, то их нужно изобрести и написать. Это слишком радикальный метод, который я не могу поддержать. В данном случае проще и эффективнее будет поменять язык на объектный. Такие языки, как Delphi и Java слишком разные, чтобы писать на них одинаково, потому что у языков слишком разная идеология.

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

Существует множество подходов к программированию, но мне кажется, что лучший вариант - это отделение логики, данных и представления. Такие походы, как MVC придуманы уже давно и до сих пор успешно используются во многих компаниях. Только используются далеко не всеми. Я практически не видел подходы с разделением в проектах на Delphi и это ужасно. Народ почему-то пишет логику прямо в модулях представления или перепрыгивает сразу на трехуровневое программирование, когда код логики (тут любят применять красивое выражение "бизнес логика") выносится на промежуточный уровень.

File Explorer Control .NET финальная версия

Уже прошло около полугода, как я выпустил первую версию компонента файлового браузера для .NET (File Explorer) в виде бета версии. За это время у меня уже появилось несколько человек, которым понравился компонент и они предложили свои услуги по тестированию, за что я отдал им бесплатное разрешение на использование компонентом. Самое интересное, что все они не из России, что странно, ведь я в основном пока рекламировал компонент только через свой блог.

Прошло пол года и я за это время просто молча обновлял компонент на сервере, но не обновлял версию, потому что это оставалась все еще бета версия. Вчера же я решил поставить первую точку в разработке пакета File Explorer Control .NET и выложил на сайт очередной апдейт, который назвал финальной первой версией. Информация на русском языке по компоненту доступна здесь: .NET компонент файлового браузера

Пакет состоит из двух компонентов FileExplorerControl и FileListView. Первый из них построен на базе пользовательского элемента управления, что позволяет создать уникальные возможности по рисованию элементов списка. Компонент FileListView построен на базе классического ListView, что придает ему классический вид и функционал. Данные компоненты будут очень удобны и полезны тем, кто программируте WinForms приложения.

Российские программисты снова чемпионы

Буквально вчера мы говорили о гордости и сегодня прекрасный пример гордости для нашей страны в сфере ИТ. Команда из Санкт-Петербургского государственного университета информационных технологий, механики и оптики стала чемпионом по программированию. Ну разве не предмет для гордости? Для меня да, потому что это значит, что наше образование не на столько плохое. Это значит, что наши ребята еще не все наркоманы и алкоголики и способны выигрывать чемпионство. Наши команды заняли так же 3-е и 4-е места.

Я рад за ребят и поздравляю их с таким достижением. Я уверен, что эти ребята, когда закончат институт будут создавать программы, которыми можно будет гордится. Для кого будут создавать - это другой вопрос (их же могут забрать и в штаты). Но я надеюсь, что они найдут свое место в мире ИТ и может быть кто-то из них станет будущим Биллом.

Мои поздравления ребятам и удачи.

Какой язык программирования изучать?

Это достаточно интересный вопрос - какой же язык программирования изучать. Всегда говорил, что изучать нужно несколько языков. И это скажу вам не только я, потому что нельзя класть яйца в одну карзину. Я абсолютно не жалею, что когда-то изучал Delphi и если он будет набирать в популярности, я смогу найти себе работу. Я немного знаю Java, C++ и сейчас вплотную работаю с C#, потому что он на подъеме. Тут нужно задать себе вопрос - а для чего ты учишь язык программирования? Если для того, чтобы писать программы для себя, то ты сам себе хозяин и волен выбирать то, что тебе нравится. Если нравится Delphi, то используй его и не обращай ни на какие тесты внимания.

Популярность языка определяется теми, кто волен выбирать среду разработки и язык. Благодаря этим людям, Delphi, Java или любой другой может стать популярным, а может умереть не смотря на все свои преимущества. Если ты начальник ИТ отдела и тебе нужно выбрать язык, то выбирай то, что лучше знаешь или что лучше подходит для задачи, ведь задачи бывают разные. Да, нужно смотреть на перспективу и нужно быть уверенным, что язык программирования не умрет уже завтра. Но не стоит заглядывать слишком далеко, потому что в дальней перспективе может умереть все.

Когда-то был популярен язык С и никто не думал, что ему можно придумать замену. А она нашлась - С++. Уже долгое время С++ был стандартом в разработке пользовательского интерфейса, но на наших глазах все меняется. Для большинства задач все больше используют C# в связке с WinForms или WPF. При этом C++ постепенно будет сдавать позиции. Он не умрет, но будет сдавать. Не удивлюсь, если через 10 лет С++ заменит C# или F#, но это может быть (именно может, но не факт что будет) и только в отдаленной перспективе.

О блоге

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

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

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

Пишите мне