Программирование
Практическая реализация идеальной БД
Опубликовано Vladimir Rybinkin в вс, 18/12/2011 - 11:01.Что же вы совсем языки пооткусывали, господа?
- Комментарии (6)
- Читать далее
- Просмотров 160
FreePascal / Lazarus
Опубликовано Serguei_Tarassov в вс, 21/11/2010 - 18:02.Тестировал FreePascal / Lazarus на предмет пригодности к профессиональной разработке. В качестве теста взял простенькое приложение из 3 компонентов (1 исполняемый модуль и 2 DLL-ки по принципу плагинов) с несложной обработкой XML внутри. Выводы.
- Блог пользователя Serguei_Tarassov
- Комментарии (4)
- Читать далее
- Просмотров 710
Тесты для программистов
Опубликовано Serguei_Tarassov в пт, 29/10/2010 - 22:43.Лет 10 назад я составил небольшой сборник тестов по Delphi и Transact SQL для соискателей вакансии инженера-программиста. Время от времени пользовался. Частенько люди, не сумевшие ответить на большинство вопросов, просили тесты забрать с собой. Забирайте, на здоровье.
А сейчас посмотрел на те же тесты скептически. Знание технологии они еще худо-бедно позволяют выяснить, а вот как человек мыслит - непонятно.
Посему решил свести дело к одному тесту: "Напишите программу, которая выводит свой собственный текст". На Delphi и SQL. Или на любом другом языке, который знаете.
- Блог пользователя Serguei_Tarassov
- Комментарии (9)
- Читать далее
- Просмотров 977
C# typedef
Опубликовано Serguei_Tarassov в ср, 14/04/2010 - 10:53.Хочется дать по мозгам проектировщикам C#, не предусмотревшим элегантного решения создания псевдонима для типов.
В Delphi:
interface type TEntityId = integer;
В C++ (заголовочный файл):
typedef int TEntityId;
#include "AppTypes.h"
В C# три варианта и все плохие:
using TEntityId = System.Int32 // видимость только в текушем файле
public class TEntityId : System.Int32 // не работает для простых типов и sealed-классов
public class TEntityId // громоздкая конструкция, лишний код манипуляции значением
{
private int еntityId;
public int Value { get... set... }
}то же, но с параметризацией:
public class TEntityId<ТTypeOfId>
{
private ТTypeOfId еntityId;
public ТTypeOfId Value { get... set... }
}Зачем это надо? Представьте, что мне надо вместо TEntityId = int использовать Guid или Int64...
- Блог пользователя Serguei_Tarassov
- Добавить комментарий
- Просмотров 518
Коза кричала или Ревизия кода
Опубликовано Serguei_Tarassov в сб, 20/06/2009 - 17:38.Когда провожу ревизию программного кода, всякий раз вспоминаю эпизод из "Осеннего марафона". Бузыкин сидит у Варвары, помогая ей с переводом. Время - половина первого ночи. Происходит примерно такой диалог.
- Скажи, Бузыкин, может я бездарная?
- Неее...
- Но ты же всё повычеркивал!
- Не всё... Но вот это, например, я не мог оставить: "Коза кричала нечеловеческим голосом"
И еще пару вестей из полей...
- Блог пользователя Serguei_Tarassov
- Комментарии (2)
- Читать далее
- Просмотров 1068
Вести с софтостроительных площадок
Опубликовано Serguei_Tarassov в сб, 28/02/2009 - 14:14.Давненько я не брал в руки шашек, посему пришла пора написать немного текста на тему практического софтостроения, немного затронув «любимую» тему наживульки (agile).
Некоторые из друзей в курсе, о какой фирме идет речь, благо успели в ней поработать на этапе стартапа, но название, естественно, я опускаю.
Итак, судьба на короткое время забросила меня в качестве консультанта в лоно одной софтостроительной фирмы, разработавшей и поддерживающей систему документооборота для специализированных нужд (управление жизненным циклом товаров). Система относительно небольшая по функционалу, а вот клиенты хоть и малочисленны, но крупные. То есть способны танцевать девушку.
Вообще говоря, в процессах взаимодействия фирм отчетливо действуют все те же физические законы всемирного тяготения. Небольшой планете–фирме, чтобы не упасть на большую, разбившись вдребезги, необходимо развить минимум первую космическую скорость. В этом случае она будет стабильно вращаться вокруг большой в качестве спутника. Чтобы оторваться от поля тяготения большой планеты и начать самостоятельный полет нужно развивать вторую космическую скорость.
В течение последних месяцев в фирме происходит попытка выйти на вторую космическую. Поскольку процесс, обеспечивающий первую космическую, был близок к тому, что называют «экстремальным программированием», то было принято решение продолжать в том же духе, назвав все это звонким словечком «скрам» (scrum).
- Блог пользователя Serguei_Tarassov
- Комментарии (1)
- Читать далее
- Просмотров 1646
ASP.NET
Опубликовано Serguei_Tarassov в чт, 12/02/2009 - 01:50.Всякий раз когда приходится что-то делать при помощи недотехнологии ASP.NET или, того хуже, править чей-то код, не покидает ощущение копания по локоть в большой столовской кастрюле с макаронами.
Пока, как оно и положено веб-интерфейсу, сценарии использования просты, то с неадекватной задаче сложностью кода можно как-то мириться. Дальнейшее усложнение сценария приводит к нарастанию кода по экспоненте. AJAX еще более усугубляет положение.
Сценарий, требующий десяток-другой строк кода для обычного оконного клиента, оборачивается сотнями строк спагетти из HTML, Javascript и Code behind. Событийная модель на порядок беднее не то чтобы VCL/WinForms, а даже FoxPro 2.0 для DOS образца 1992 года. 5 клиентских событий у PageRequestManager, из которых 4 отрабатывают только при асинхронном вызове, оказываются пределом мечтаний.
Существующая подсистема пользовательского интерфейса у клиента из трех-четырех десятков экранных форм реализована примерно сотней тысяч строк, при том, что создатели четко отделили слой представлений от бизнес-логики, а общие элементы выделены в controls разного уровня: от custom до композитных user...
Хочется пожелать коллегам, ответственным за выбор технологий и платформ, всячески обосновывать необходимость использования веб-интерфейса.
- Блог пользователя Serguei_Tarassov
- Комментарии (3)
- Просмотров 861
Массив байтов в строку шестнадцатеричных значений
Опубликовано Serguei_Tarassov в чт, 15/01/2009 - 15:42.Иногда бывает нужно посмотреть значение массива байтов в понятном человеку виде, чаще всего в виде пар шестнадцатеричных цифр. Задача может быть решена простой функцией, на примере которой мы увидим три подхода к работе со строками в Delphi и Паскале.
- Блог пользователя Serguei_Tarassov
- Комментарии (2)
- Читать далее
- Просмотров 1838
Упорядоченный список с повторяющимися значениями (Sorted multilist)
Опубликовано Serguei_Tarassov в вс, 11/01/2009 - 00:03.При разработке пользовательских интерфейсов периодически требуется к элементу управления (control) типа списка/выпадающего списка (ListBox, DropDownList) пристыковать (data bind) коллекцию (список) объектов в качестве источника данных. Дружественный интерфейс предполагает, что данные в списке отсортированы. Но если в списке имеются повторяющиеся значения, то использование стандартных классов типа SortedList или Dictionary становится невозможным.
- Блог пользователя Serguei_Tarassov
- Комментарии (2)
- Читать далее
- Просмотров 848
Дождёмся?
Опубликовано Serguei_Tarassov в пт, 26/12/2008 - 00:13....Можно сказать много грустных слов о тенденциозности современной околотехнической литературы, о переориентации отечественных программистов и разработчиков с исследовательских и новаторских на чисто коммерческие работы, о складывающемся монополизме отнюдь не лучших (зато более хватких) производителей компьютеров и программного обеспечения и т.д. И все же, несмотря на эти признаки нарастающего вырождения в нашем, да и мировом компьютерном деле, я надеюсь, что подъем наступит, и мы будем его свидетелями и реализаторами.
С.Н. Дмитренко, 8 апреля 1993 г.
Из предисловия к переводу книги Leo Brodie "Thinking FORTH. A Language and Philosophy for Solving Problems"
- Блог пользователя Serguei_Tarassov
- Добавить комментарий
- Просмотров 737
