LINUX.ORG.RU

Условности в API

 , ,


0

1

Здрасте, короче я вот сижу и думаю тут над одной вещью, вернее думал как лучше сделать или не лучше, а правильнее. В общем я медленно пилю форк https://github.com/orangeduck/Corange для своей игры, запилил мультирендеринг, обработчик событий, добавил таймеры, триггеры и прочую мишуру, но вот остановился посмотрел на всё с виду выходит монолит, а я не люблю монолиты , вернее люблю , но только если это самодостаточные монолиты (вроде nuklear и его я тоже впилил в corange хехе), а тут иное. Ну да ладно решил я всё разбить на модули потому что например при портировании на android я буду делать эмуляцию стилусов которые в конечной сборке для пк не нужны и всё такое прочее. Но вопрос не об этом, а вопрос вот в чём, хочется упростить работу и выкинуть «лишнее» а говорю я про дисплей, как сущность, что профитнее иметь API для дисплея и получать от него список разрешений экрана и абсолютное положение курсора например или выкинуть его и считать что у нас есть только window или screen и он поддерживает только вот такие вот разрешения и положение курсора мышки будет значиться только внутри этого скрина/окна. С одной стороны получаем логическую цепочку Дисплей->Окно во втором случае на уровне программы считаем что у нас нет никакого Дисплея,а окно приложения монопольно и само по себе, при переносе на мобилку так и будет, а вот вообще в целом что лучше абстрагироваться от всего или всё же имеет смысл каждую сущность делать отдельно?

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

anonymous ()

классика

А хотите я процитрую Льва Николаича в вашем стиле ?

а даже если и нет :

Eh bien, mon prince. Gênes et Lucques ne sont plus que des apanages, des поместья, de la famille Buonaparte. Non, je vous préviens, que si vous ne me dites pas, que nous avons la guerre, si vous vous permettez encore de pallier toutes les infamies, toutes les atrocités de cet Antichrist (ma parole, j’y crois) — je ne vous connais plus, vous n’êtes plus mon ami, vous n’êtes plus мой верный раб, comme vous dites. Ну, здравствуйте, здравствуйте. Je vois que je vous fais peur, садитесь и рассказывайте. Так говорила в июле 1805 года известная Анна Павловна Шерер, фрейлина и приближенная императрицы Марии Феодоровны, встречая важного и чиновного князя Василия, первого приехавшего на ее вечер. Анна Павловна кашляла несколько дней, у нее был грипп, как она говорила (грипп был тогда новое слово, употреблявшееся только редкими). В записочках, разосланных утром с красным лакеем, было написано без различия во всех: «Si vous n’avez rien de mieux à faire, M. le comte (или mon prince), et si la perspective de passer la soirée chez une pauvre malade ne vous effraye pas trop, je serai charmée de vous voir chez moi entre 7 et 10 heures. Annette Scherer». Dieu, quelle virulente sortie! — отвечал, нисколько не смутясь такою встречей, вошедший князь, в придворном, шитом мундире, в чулках, башмаках, и звездах, с светлым выражением плоского лица. Он говорил на том изысканном французском языке, на котором не только говорили, но и думали наши деды, и с теми тихими, покровительственными интонациями, которые свойственны состаревшемуcя в свете и при дворе значительному человеку. Он подошел к Анне Павловне, поцеловал ее руку, подставив ей свою надушенную и сияющую лысину, и покойно уселся на диване.

MKuznetsov ★★★★★ ()

С одной стороны получаем логическую цепочку Дисплей->Окно во втором случае на уровне программы считаем что у нас нет никакого Дисплея,а окно приложения монопольно и само по себе, при переносе на мобилку так и будет, а вот вообще в целом что лучше абстрагироваться от всего или всё же имеет смысл каждую сущность делать отдельно?

Это не логическая цепочка, а «предположения разработчика», который закладывается на какую-то нужную ему «гибкость». Никто тебе не мешает заворачивать имеющиеся сущности «окно» в какие-то ad-hoc возникающие приблуды типа «редактор уровней» или поднимать свой движок на чужом, совершенно постороннем рендере, если возникает такое желание. Потом. Когда назреет «объективная необходимость». Т.е. если у тебя модульность, то о чем-то париться заранее необязательно — когда дойдешь до моста, тогда и начнешь через него переходить. Механизм модульности тоже никак не мешает «сливать в монолиты» для каких-то стесненных по ресурсам применений.

slackwarrior ★★★★★ ()
Ответ на: комментарий от slackwarrior

Спасибо, мне именно мысли сторонние нужны. Отложу пока что в сторону, пока функционал пилить и пилить. А уж как потом скомпоновать всё и обмазать API потом подумаю. А то чёт я и вправду загнался будто мне это выкладывать куда то )

FUNCTION ()