Странно, вроде одни и те же люди так по-разному проголосовали здесь и в соседней статье свежей, где C# сравняли (не сравнили, а именно сравняли) с Kotlin. Там пока навалились шарписты на новые проекты))
Спасибо за статью. Вот, что упростил (если использовать livedata или flow): весь inner class со всеми его методами и проверками заменяется на одну строку на каждый валидатор, привязанный к инпуту:
Разумеется. Но с ним я лично только начал недавно знакомиться (там вообще документации на две тысячи страниц). И тут цель материала вообще изложить основные принципы, на которых строится разработка ORM.
мне кажется, не с проста никто до сих пор этого не сделал…
Есть онлайн OCR, использующий tesseract, там очень плохо с распознаванием контрастно-половинчатых цифр…
Судя по тому, что написано про Go, это язык, разработанный гуглом, преимущественно для системного программирования. И там не то, чтобы хорошо с ООП, там совсем другая парадигма. А я только привык к этой)
поэтому я и изучаю усиленно python. Но пока, когда надо сделать что-то быстро и работоспособное, пусть в качестве прототипа, мне удобнее это делать в паскале. Кстати, на нем тоже можно и web-приложения делать, но это, конечно, не основное паскалевское предназначение, даже не как языка, а как системы.
Как раз описанный в начале случай. База данных юридических лиц. В егрюл размер доли может храниться в виде денежной суммы, десятичной дроби или обыкновенной. 10000 рублей ровно на троих не разделить, поэтому по 1/3 каждому. Сложение всех долей должно давать 1 в качестве проверки.
Как всторостепенное приложение — написал калькулятор для того, чтоб ребенок мог проверять верно ли он решает школьные задачи.
Пожалуй, попробую перенести в лазарус, спасибо за наводку. А вот вопрос, здесь, как я понимаю, идет полное зеркальное отображение таблиц бд в объекты, поля бд = свойствам объектов. А как-то решена проблема маппинга связей один-ко-многим и многие-ко-многим? Я у себя добавляю к объектам свойства с типом списка для заполнения уже внутри объекта списочного свойства соответствующими объектами. Но тут только хардкодинг помогает (пока). В tiOPF паттерн relation manager пытаюсь понять, но пока никак на себе не применю. Плюс еще есть одна загвоздка. Связь многие-ко-многим при маппинге в объекты может повлечь дикую рекурсию (прямой пример: юрлицо имеет участников — юрлиц, объект юрлицо имеет свойство список участников, список состоит из объектов юрлиц, ну а как иначе?), вот такие проблемы как решали, если были?
Большое спасибо за труд)
Как раз сижу и вникаю, как в книги по проектированию, так и в ваш код. Применил его на своем другом учебном проекте. Всё же, возвращаясь к методу обучения основам ООП… Ну вот, чтобы вникнуть в ваш код, мне пришлось его повторить, чтоб понять кто кого куда и зачем). И это имея уже представление о том, что делают те или иные классы, судя по названиям. А в тот момент, когда я только начинал изучать ООП, мне трудно было даже понять реализацию полиморфизма и смысл этого. Понял, только на ходу, делая вот этот проект с рисульками. Вряд ли на первых порах обучения стоит сразу же в простейшие проекты вставлять сложные шаблоны проектирования. Это и усложняет их, и делает трудными для чтения и понимания.
Спасибо, нашел очередное подтверждение того, о чем сам всё время думаю (ну не всю жизнь, а только сейчас, пока вникаю в азы проектирования, почитывая Макконнелла (гл. 6 стр. 140-145))
Только в теории, на уровне википедии и ряда статей на Хабре, которые вот нашел утром) Но я и со списками, стеками, очередями и ассоциированными массивами познакомился только на той неделе, но уже использую в отлаженном проекте. Так что быстро учусь.
Спасибо. Я как раз продолжаю сам изучать теорию ооп.
Но в данном конкретном примере, для начинающих, так сказать, не будет ли это избыточным усложнением? То есть, когда в школе учат формулам скорости, веса, ведь никто сходу не говорит, что нужно учитывать теорию относительности взамен простых вычислений s=vt.
Спасибо за статью. Вот, что упростил (если использовать livedata или flow): весь inner class со всеми его методами и проверками заменяется на одну строку на каждый валидатор, привязанный к инпуту:
viewModel.eqCount.observe(viewLifecycleOwner) { validateEqCount(); validateXCount() }
viewModel.xCount.observe(viewLifecycleOwner) { validateXCount() }
Есть онлайн OCR, использующий tesseract, там очень плохо с распознаванием контрастно-половинчатых цифр…
Как всторостепенное приложение — написал калькулятор для того, чтоб ребенок мог проверять верно ли он решает школьные задачи.
Как раз сижу и вникаю, как в книги по проектированию, так и в ваш код. Применил его на своем другом учебном проекте. Всё же, возвращаясь к методу обучения основам ООП… Ну вот, чтобы вникнуть в ваш код, мне пришлось его повторить, чтоб понять кто кого куда и зачем). И это имея уже представление о том, что делают те или иные классы, судя по названиям. А в тот момент, когда я только начинал изучать ООП, мне трудно было даже понять реализацию полиморфизма и смысл этого. Понял, только на ходу, делая вот этот проект с рисульками. Вряд ли на первых порах обучения стоит сразу же в простейшие проекты вставлять сложные шаблоны проектирования. Это и усложняет их, и делает трудными для чтения и понимания.
Ну или я не так понял.
Но в данном конкретном примере, для начинающих, так сказать, не будет ли это избыточным усложнением? То есть, когда в школе учат формулам скорости, веса, ведь никто сходу не говорит, что нужно учитывать теорию относительности взамен простых вычислений s=vt.