Size: a a a

2020 February 10

DM

Dmitry Mozulyov in Delphi & Lazarus
Nik
Пока что скорость разработки получающаяся мне нравится
Завидую тебе. Не скорости разработки и отношению к ней )
источник

N

Nik in Delphi & Lazarus
Dmitry Mozulyov
Завидую тебе. Не скорости разработки и отношению к ней )
Зависть - это зло.
источник

N

Nik in Delphi & Lazarus
И не забывай, что я не с нуля сейчас это всё делаю. Многие мои идеи были раньше обкатаны в разных проектах.
источник

N

Nik in Delphi & Lazarus
Сейчас просто обобщение опыта накопленного.
источник

N

Nik in Delphi & Lazarus
Ну, и с одновременным подтягиванием на современные возможности делфи.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Dmitry Mozulyov
Завидую тебе. Не скорости разработки и отношению к ней )
В жизни на реальных проектах всё чаще всего просто и тупо. Поддерживаемый, переносимый и простой как пробка код - самое-самое главное. Посмотрел, мормот написан круто, но слишком замороченно, любые изменения ломают всю работу. На fpc транке просто не стартует
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Это фактически приговор. Но куски забрать можно. Вот pdf им генерирую уже
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Synops pdf
источник

AS

Alexey Shumkin in Delphi & Lazarus
Dmitry Belkevich
В жизни на реальных проектах всё чаще всего просто и тупо. Поддерживаемый, переносимый и простой как пробка код - самое-самое главное. Посмотрел, мормот написан круто, но слишком замороченно, любые изменения ломают всю работу. На fpc транке просто не стартует
Поддерживаемый и простой как пробка код - самое-самое главное. .... любые изменения ломают всю работу.

вот я всегда и топлю против хрупкого кода...
и чтобы нужно было не МЕНЯТЬ,  а ДОБАВЛЯТЬ... Open/Closed Principle - открытый для расширения, закрытый для изменения -т.е. чтобы расширить функциональность, не надо было изменять существующий код... не будешь изменять - не будет (не должно) ломаться
источник

AS

Alexey Shumkin in Delphi & Lazarus
Dmitry Belkevich
Это фактически приговор. Но куски забрать можно. Вот pdf им генерирую уже
это приговор опенсорсу ))
но "энтерпрайз", будь добр, пили )))
источник

N

Nik in Delphi & Lazarus
Dmitry Belkevich
В жизни на реальных проектах всё чаще всего просто и тупо. Поддерживаемый, переносимый и простой как пробка код - самое-самое главное. Посмотрел, мормот написан круто, но слишком замороченно, любые изменения ломают всю работу. На fpc транке просто не стартует
Я стараюсь не связывать между собой логические части, отвечающие за разный функционал.
источник

N

Nik in Delphi & Lazarus
Alexey Shumkin
Поддерживаемый и простой как пробка код - самое-самое главное. .... любые изменения ломают всю работу.

вот я всегда и топлю против хрупкого кода...
и чтобы нужно было не МЕНЯТЬ,  а ДОБАВЛЯТЬ... Open/Closed Principle - открытый для расширения, закрытый для изменения -т.е. чтобы расширить функциональность, не надо было изменять существующий код... не будешь изменять - не будет (не должно) ломаться
Вот! Именно это и пытаюсь сделать)
источник

DM

Dmitry Mozulyov in Delphi & Lazarus
Честно говоря, не понял, о чём дискуссия. Есть разные архитектурные решения, в основе которых были заложены какие-то принципы. Одни тебе походят, другие нет. Хорошо, если получается взять готовое, а при необходимости допилить напильником. Но иногда люди делают ставку на вещи, которые изначально не заточены на то, что понадобится в будущем. Сериализаторы которые я видел, заточены на RTTI. Но правда в том, что не все типы, которые необходимо будет поддерживать, умещаются в RTTI. И не всеми компиляторами. Например, раньше не поддерживался RTTI для указателей. Нет понятия «глубины указателя», т.е. PChar и PPChar - это принципиально разные типы, разные условия конвертации, это не просто указатели. В FPC не генерируется RTTI для методов интерфейса, хотя это сверх мощная штука. А в Delphi для некоторых методов RTTI может не генерироваться, если они не удовлетворяют определенным условиям. Да и в целом концепция свойств отказывается учитывать случаи других соглашений кроме register, не учитывает [Unsafe] результат, с комплексными свойствами, типа TCanvas.Pixels[] вообще не понятно, что делать.
источник

DM

Dmitry Mozulyov in Delphi & Lazarus
Моя библиотека разрабатывается из соображения гибкости. Когда те или иные типы можно регистрировать, задавать конвертацию, когда можно вручную переопределять набор свойств и методов, описывая их полностью. Бонусы - это компактность и скорость. Компактность пригодится для разного рода утилит и юнит тестов. Ну а скорость может понадобиться в самый неподходящий момент :)
источник

SB

Sergey Bodrov in Delphi & Lazarus
Я бы еще разделял публичную сложность и непубличную. То есть, сложность экспортируемых структур и функций обычно имеет более решающее значение, чем сложность "под капотом". Например, архивация ZIP или кодирование звука "под капотом" очень сложная штука, граничащая с магией. Но на поверхности все очень просто, TStream и имя файла.
источник

AS

Alexey Shumkin in Delphi & Lazarus
Sergey Bodrov
Я бы еще разделял публичную сложность и непубличную. То есть, сложность экспортируемых структур и функций обычно имеет более решающее значение, чем сложность "под капотом". Например, архивация ZIP или кодирование звука "под капотом" очень сложная штука, граничащая с магией. Но на поверхности все очень просто, TStream и имя файла.
это называется "интерфейс" ))) "интерфейс пользователя", если хотите )
источник

AS

Alexey Shumkin in Delphi & Lazarus
Sergey Bodrov
Я бы еще разделял публичную сложность и непубличную. То есть, сложность экспортируемых структур и функций обычно имеет более решающее значение, чем сложность "под капотом". Например, архивация ZIP или кодирование звука "под капотом" очень сложная штука, граничащая с магией. Но на поверхности все очень просто, TStream и имя файла.
но сложность разработки/доработки к интерфейсу пользователя имеет не самое близкое отношение
а мы сейчас говорим именно о первом )
источник

N

Nik in Delphi & Lazarus
Sergey Bodrov
Я бы еще разделял публичную сложность и непубличную. То есть, сложность экспортируемых структур и функций обычно имеет более решающее значение, чем сложность "под капотом". Например, архивация ZIP или кодирование звука "под капотом" очень сложная штука, граничащая с магией. Но на поверхности все очень просто, TStream и имя файла.
Публичную сложность учитывают) Мой девиз "Чем меньше кода, тем лучше")
источник

N

Nik in Delphi & Lazarus
Alexey Shumkin
но сложность разработки/доработки к интерфейсу пользователя имеет не самое близкое отношение
а мы сейчас говорим именно о первом )
Сложность разработки интерфейса пользователя тоже учитываю)
источник

SB

Sergey Bodrov in Delphi & Lazarus
Alexey Shumkin
это называется "интерфейс" ))) "интерфейс пользователя", если хотите )
Важно не название, а привлекательность решения для продакшена. На первый взгляд, простые снаружи решения лучше, и не важно что там "под капотом". Но ситуация по ходу пьесы может измениться, потребуется все же лазить "под капот", и тогда окажется, что под капотом все плохо и это не лечится. И что более сложные решения на самом деле проще в долгосрочной перспективе, но кто ж знал..
источник