Блог

Использование интерфейсов

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

Читаем, делимся мнением, оставляем комментарии. Ну а я по свободе напишу еще что-нибудь. Уже могу сказать, что сейчас готовится большая заметка по безопасности.

Проектирование кода

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

Конференция Fast Reports

Сегодня хочу пропиарить конференцию Fast Reports Inc для программистов и делаю это бесплатно, т.е. даром. Конференция будет проходить на моей родине и даже в районе, котором я вырос. Недалеко парк дружба, где я купался в дедстве (если будете там, то сейчас я этого делать не советую).

Еще из достопримечательностей там недалко БСМП-2, в которой мне сделали последнюю операцию по ошибке - перепутали апендицит с отравлением и вскрыли мне пузо за 2000 рублей (по старинным еще деньгам), а на следующий день выписали, чтобы не загружал. Та операция повлияла на то, что я свалил из Ростова. Ох, и занастальгировал я.

Но вернемся к конференции. Кто не знает Fast Reports? Shame on you!!! Для .NET я их отчеты не пробовал, а вот для Delphi у них самая офигенная система отчетов. То, что встроенно в Delphi - это фуфло поганое, которое можно вырезать из системы и не позориться. Не даром отчетность в Delphi несколько раз менялась, а Fast Reports стабилен и удобен. Так что пиарю не только конференцию, но и Fast Reports. Как я уже сказал - бесплатно, т.е. даром.

Что важнее для программиста

Еще один интересный вопрос, который упал в мой почтовый ящик:

Изучаю программирование недавно, но возник такой вот вопрос. Обычно, что-либо куда гораздо легче изучать, если из этого чего-то можешь выделить главное, так сказать основное. Есть известный холивар на тему что важнее в программе : язык и всё ему сопутствующее или алгоритм; умение грамотно спроектировать или грамотно закодировать. Подскажите пожалуйста, как человек с большим опытом - а что-же всё-таки важнее для программиста - алгоритм/проектировка или остальное?

Я конечно же считаю, что оба навыка очень даже важны, особенно, если придется работать в небольшой компании. В России, кажется, вообще всегда программистам приходится делать все сразу. Правда я в крупных компаниях не работал и не работал в софтверных компаниях. Хотя нет, в одной софтверной я был, но там я банально подстраивался под происходящее и работал только из принципа «тише воды, ниже травы». А в остальных компаниях приходилось самому решать какой алгоритм использовать и как все реализовывать.

Следование стандарту в HTML

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

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

<meta value=something>

С точки зрения XHTML эта запись не корректна, потому что тег не закрыт и значение параметра value не в кавычках. В 5-й версии HTML эта запись корректна, потому что это больше никак не связанный с XML язык и может оформляться как угодно. Теперь вы свободны, писать все как угодно.

Хранение комментариев в базе данных

Михаил, как лучше, заносить комментарии к заметкам в ту же БД где и сама заметка, или создать отдельную БД для комментариев?

Всегда и во всех действиях пытаюсь найти смысл. Какой может быть смысл в отдельной базе данных? Если посмотреть на блоги, то в движке блога почти все запросы будут SELECT и только комментирование будет INSERT. Я так понимаю, что автор этого письма хочет обезопасить всю базу записей блога от взлома комментариев. Но отдельная база не всегда поможет. Дело в том, что если на сервере не правильно распределены права, то жопа настанет всем базам данных.

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

Национальная платформа

Сегодня поступил вопрос о том, что я думаю по поводу того, что Путин утвердил национальную платформу с ссылкой на Cnews. Если честно, то даже не знаю, что думать. То, что национальная платформа будет платформой, уже красиво звучит, но никаких подробностей нет о том, как она будет реализована. Будет ли это Linux платформа, Windows или даже тучка в небе, ничего не понятно. Никаких подробностей нет, поэтому я абсолютно ничего не думаю и не могу думать.

Но то, что какую-то платформу разрабатывают, это хорошо. Даже если она будет только для правительства, это уже плюс. А если платформа окажется полезна и коммерческим предприятиям, то плюс в двойне. Лишь бы она была полезна и приносила пользу как правительству, так и народу в целом. Если это будет так, то я рад за наше правительство и разработчиков.

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

Перспективы Visual Basic

Доброго времени суток, Михаил. Как вы думаете, зачем Microsoft продолжает поддерживать VBasic в пакете Visual Studio. Вы не задавались таким вопросом?)

С появления .NET поддержка Visual Basic свелась к банальной поддержке синтаксического анализатора. Я думаю, это основная проблема. Я конечно не могу знать реальных затрат на поддержку, но могу предполагать. Дело в том, что нужно только прочитать из исходного кода синтаксис VB и сгенерировать код .NET, а дальше уже все классы и все типы данных одинаковы для всех языков .NET.

Интеллект SQL Server

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

В случае с индексами поговорка "ломать не строить" не работает. Тут наоборот проще построить индекс, чем сломать. Из-за того, что таблица используется ооооочень часто, на таблице почти постоянно есть проблемы в виде Dead Lock-ов. В таких условиях SQL сервер просто отфутболивает меня, а останавливать сайт чтобы освободить блокировки я не могу.

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

Программирование для Windows Phone 7

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

Моя программа просто будет с телефона обращаться к Web и работать с ним совместно. Это банальное клиент серверное соединение.

Кстати, свою программку я не планирую выкладывать на маркет. Это стоит денег, а я не собираюсь платить Microsoft. Просто потому, что не собираюсь зарабатывать. Вот если появится идея, на которой можно будет заработать, вот тогда реализую и заплачу MS.

О блоге

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

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

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

Пишите мне