Є ідея гри чи геймінг-сервісу? Реєструйся на онлайн-хакатон 7.08! Призовий фонд — $3000
×Закрыть
  • Земную жизнь пройдя до половины... Варианты развития карьеры и не только

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

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    Можно, конечно. Было бы желание :)

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    У меня не стоит проблема в недостатке работы, а ковырять настройки — это скучно и муторно. Мне, как программисту, проще описывать всё на языке программирования: там и в подпрограмму можно вынести повторяющиеся куски, и копи-пастнуть в конце концов...

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    Нет, это я всё про заказчиков. Некоторым нравится самостоятельно ковыряться в конфигах и настройках.

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

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

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    Спасибо за ссыль. Комменты жгут! Посмеялся :) Особенно вот этот понравился:

    Статья напоминает дамп мозговой деятельности PHP програмиста в момент погружения в сон
  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    Есть простые правила, по которым создаются таблички. Генератора пока нет.
    Кстати, в своих проектах на Django я не создаю таблички руками, и не вношу в них изменения руками, и написание SQL-кода — для меня задача очень редкая, связанная исключительно с оптимизациями.
  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    Под практически любые задачи?
    — Можно ли без программирования вставить любой виджет, который потребует заказчик? Например, wysiwyg-редактор или какой-то определенный комбо-бокс или календарик, у которого свой уникальный способ инициализации?
    — Можно ли на вашем движке сделать веб-приложение для учета времени, наподобие toggl.com? Нажал кнопку — время пошло, еще раз нажал кнопку — остановилось. И так, чтобы без программирования.
    — Можно ли сделать веб-чат? Надо, чтобы сообщения добавлялись на странице через DHTML и Ajax. И так, чтобы он выдерживал большие нагрузки (скажем, сто тыщ запросов в секунду). Без программирования, естественно.
    — Если потребуется экспорт данных в какой-либо формат, возможно даже бинарный, Ваш движок позволит реализовать это без программирования?
    — Поддерживается ли горизонтальное масштабирование? Если запросов будет слишком много, и один сервер на справится.
    — Есть ли поддержка нереляционных баз данных? Например, Redis?
    — Можно ли прикрутить любые API, в том числе экзотические и узко-специализированные, не прибегая к программированию? Например, чтобы данные отправлялись на печать с сервера на сетевой принтер, или чтобы авторизация проходила через какую-то социальную сеть?

    Поддержал: Евгений Козлов
  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    Самое интересное, что ООП отлично сочетается с такими концепциями.

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    А вот поздравлений не надо, просто примите как данность то, что ООП ни в чем не виновато :)

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    Вы знаете, я не хочу никого обидеть, но не всем дано быть гениями, и у разных людей разный уровень способностей. Это вопрос к матушке природе или к Богу (как предпочитаете), к родителям и школе, к обществу, в конце концов. Большинство специалистов — весьма посредственные специалисты. Задач много, и хороших специалистов на всех не хватает, к тому же они дорого стоят. К тому же никто не отменял человеческий фактор. Такая проблема не только в программировании, а во всех сферах жизни. Чем меньше человек будет делать вручную (непосредственно своими руками и под свою ответственность, неважно каким способом), тем меньше у него будет шансов напортачить. И конструкторы, и фреймвёрки существенно снижают количество ошибок. Но накладывают ограничения. Чем больше автоматизировано — тем больше ограничений.

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    Я не говорил «ровно такой же». Кажется, я написал «нечто похожее».

    Я не пошел дальше по этому пути потому, что пришел к выводу, что мне это не нужно. Мне удобнее писать код, чем конфигурировать свои конфиги и вечно допиливать универсальную абстрактную систему и какие-то расширения к ней, когда требуется что-то невписывающееся в выдуманные абстракции (здравствуй, реальный мир). Мои заказчики — они такие: вечно придумывает что-то новое, а в моих админках разбираться не хотят. А пилить какое-то узкое направление мне быстро стало скучно и неинтересно.

    Но это не значит, что я вообще не пошел ни по какому пути. Я пошел по другому пути: вынесению повторяющегося кода в библиотеки и утилиты. Сначала я делал внутренние API и разные модули к ним, чтобы легче было повторно использовать код. Но количество повторений все равно было большим: каждый раз одни и те же запросы к БД, одни и те же формочки. Потом зародилась идея сделать доступ к БД через объектную модель с автогенерацией таблиц по классам, или классов по таблицам (тогда еще не было ни ORM, ни ActiveRecord), а также систему виджетов. И ничего лучше PHP я тогда не знал. Так что, все это в итоге выглядело монструозно (спасибо синтаксису PHP), а страница генерировалась до секунды (спасибо медленным классам PHP). В итоге пришло понимание, что на PHP надо писать простой процедурный код.

    А немного позже я перескочил на Python/Django, и (о чудо!) там есть все из того, что я хотел сделать, и даже больше. И, как выяснилось, все благодаря гибкости языка и наличию метапрограммирования. Так что, пока я возился с PHP, кто-то выбрал правильный язык и реализовал все то, чего так не хватало.

    В итоге абстракции Django полностью удовлетворяют моим потребностям на сегодня, и я пишу только неповторяющийся код с новым функционалом. Есть другая проблема: в больших, сложных и нестраднартных проектах стало очень сложно ковыряться, так как каждый раз приходится долго искать подходящий слой абстракции и конкретное место, куда бы засунуть эту новую функциональность, чтобы все было стройненько. ООП в таких масштабах мне перестает нравиться, и я сейчас интересуюсь ФП. Но в любом случае, я ищу более простой способ программировать, а не способ избежать программирования. Я не хочу сказать, что программирования — это панацея. На сегодня просто нет других ёмких способов выразить абсолютно любую задачу для компьютера. Ваше изобретение я за такое не считаю — извините. Если хотите — объясню почему, но на примере. Пример конфигов — в студию, тогда можно предметно обсуждать.

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

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

    Пока что мне ясно (я так думаю) следующее:
    — Ваша система сама генерирует таблички в БД.
    — Весь движок универсален и абстрактен.

    Остаются открытые вопросы:
    — Каким способом проводится конфигурация приложения? (хотя, по сути, это не столь важно)
    — Какой класс задач решается Вашим движком?
    — Сколько проектов для сторонних заказчиков Вы уже выполнили используя этот движок, и какие именно?

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

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

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    Написать абстрактный код — это несложно. Я нечто такое делал 10 лет назад, когда делал универсальный каталог, где в каждой категории были свои параметры. Код был совершенно абстрактным, он не знал ни о машинах, ни о яхтах. Но там есть свои минусы.

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

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    Проблема неудобочитаемого кода в том, что в него сложно вносить изменения, и в нем легче допустить ошибки. Об этом недавно была статья на Хабре — про тойоты, а в ней — ссылки на другие статьи по той же теме.

    Мне не приходится делать выбор между удобством чтения и хорошим архитектурным решением. Одно другому не мешает.

    Написание кода — всегда риск внести ошибку. Но что Вы предлагаете взамен? Давайте посмотрим и выясним, какие ошибки можно сделать там, и какие ограничения накладывает Ваш способ. Продемонстрируйте пожалуйста, как вы создаете приложение без кода.

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

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

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    Потому что я всегда расстраиваюсь, когда вижу такую «непробиваемость». Донести до Вас какую-либо мысль так же тяжело, как до любого верующего. Вы свято верите в свою правоту и не допускаете даже мысли, что Ваше решение может иметь свои минусы. По крайней мере я еще не увидел, чтобы Вы согласились хотя бы с одним замечанием к Вашим выкладкам. Все люди ошибаются, и я, и Вы — примите это! Хотите конструктивной беседы — показывайте ваше изобретение, хотя бы ту часть, которую планируете продавать.

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    А, я знаю что! Я понял, что такое «абстракция» в ООП и как ее правильно использовать :) Именно поэтому у моих яхт и катеров не вырастают колёса :)

  • Абстракция для программистов, или как я забыл MySQL и потерял 1500у.е

    У меня весь код на ООП, а таких проблем почему-то нет. Что я делаю не так?

← Сtrl 12345 Ctrl →