Pull to refresh
46
0
Артем Андреев @aav

User

Send message

А какая у вас мотивация предпочитать интерфейсы вместо типов?

В этом случае нет позиции «Непрочитанные сообщения» в самом канале, просто канал помечается непрочитанным. Не очень удобно.

Но про костыльность — это я не только про непрочитанные сообщения. Вообще всё решение выглядит костыльно.
Пытался недавно решать задачу слежения за каналами, фильтрации нужных сообщений и пересылки их в отдельный канал. Информации в Телеграме сейчас много, и не хочется загружать мозг отфильтровыванием абсолютно ненужной информации. Так вот либо я не доразобрался, либо решения в данном случае достаточно костыльные. Нашлось некоторое количество ботов, которые вроде как умеют такое делать, но они фактически открывают сессию под твоим аккаунтом (ты им сообщаешь телефон, тебе приходит код, ты передаешь его боту), что уже не очень хорошо. Но к тому же нормально работающего так и не нашел, глючат, иногда стоят каких-то неразумных денег за такую простую задачу. И подумал, что может проще платить за свой минимальный сервер и написать самому нужный функционал. В результате получился мини-клиент на базе Telethon (похоже это и есть юзербот, не знал до данного момента про такую классификацию). Код достаточно тривиален, правда получилась проблемка, что когда под своим аккаунтом сообщение пересылаешь, в канале-получателе то не будет уведомления о непрочитанном сообщении, а нормального функционала «сделать сообщение непрочитанным» найти не получилось, пришлось делать промежуточного простого бота, единственная функция которого — принять сообщение и переслать в конечный канал. Но решение выгляди костыльно. Это я недоразобрался или всё так и есть?
Спасибо, сходу не сообразил, как по таблице отобрать светодиодные ленты, а по производителю стормозил фильтр сделать.
А с нашими лентами arlight никому не приходилось сталкиваться? Вроде стоит сходных денег (170-270 р/м). Насколько параметры у них правдоподобны и стабильны?

Лента RT 2-5000 24V White6000 0.5x (3528, 150 LED, CRI > 85, 250 lm/m, 2.5 W/m)
Лента RT 6-5000 12V White (2835, 150 LED, CRI > 90, 630 lm/m, 6 W/m)
Лента RT 2-5000 12V White6000 (3528, 300 LED, CRI > 85, 410 lm/m, 4.8 W/m)
У вас какие-то очень слабые тексты на сайте, если бы Вы не дали название, то по описанию на сайте сложно понять, что это именно то средство. Да и вообще, когда читаешь рядом описание на сайте и этот абзац из статьи:
Скорость действия следующая: солнечные ожоги по плечам ярко-красного и буроватого оттенка (второй степени) убирает за 6 часов почти полностью (болевых ощущений нет, визуально не различимы, кожа не отходит). Насекомые вроде комаров — намазать место укуса и забыть, что он был. Осы покусали — три нанесения маской, 4 часа до стабилизации, 10-12 часов до ухода основных симптомов. Царапины без доступа к крови — без числа, быстро. Используется для младенческих опрелостей и всяких натёртостей, есть практика. Мы очень гордимся, что смогли добиться такого. Надеемся, его возьмут при следующей ревизии аптечки на МКС из-за действенности.

то возникает легкое недоумение и недоверие, либо в статье сильно приукрасили, либо на сайте ну уж совсем свои заслуги преуменьшили.
И вот такая штука еще есть: ngrx/store
По функционалу чтения — это про библиотеку, а не про сабы.
По функционалу чтения: мне кажется, опционально было бы полезно еще транскрипцию выводить, чтобы не получилось, что начал про себя произносить неправильно и это произношение так и закрепилось.
Вы этот дополнительный архитектурный тип сущностей "граница" и "близость/соприкосновение с границей" вводите, потому что не получается Application layer разбить на 2 слоя и руководствоваться только правилами: через слой не перепрыгивать (непересечение слоя) и нижний ничего не знает про верхний?
Историю я помню, но, насколько я понял, Вы с этим согласились: "На самом деле, Fesor выше был прав".

Что значит "скрыто"? Просто в другом слое, причем всего лишь на один уровень ниже. Почему Model может туда обращаться, а находящиеся там же (где и Model) View и Controller — нет?

Вы сами ввели в разговор правило непересечения слоев. Вот следуя ему, View и Controller могут обратиться к Domain Model. Если же Вы запретите пересекать границу (какое-то другое правило), то к Domain Model не сможет обратиться Application Model.

Итого: разложив все в три слоя и пользуясь правилом непересечения слоев — картина получается непротиворечивая. Ваше последнее описание мне пока кажется противоречивым. Возможно, Вы используете какой-то другой способ изоляции, но в явном виде пока его не описали, причем еще раз обращу Ваше внимание, что изоляцию через правило непересечения слоев Вы ввели в обсуждение сами.
А на границу вы его, судя по всему, поместили, чтобы для варианта в 5-1 проиллюстрировать, что вот в отдельном слое лежит Domain Model, а Application Model в другом и вроде как вместе с Controller и View, но при этом же надо как-то обозначить, что View и Controller не должны лезть к Domain Model.

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

Или что вы под этим размещением на границе подразумевали?
Я почему-то под "непересечением слоев" понял непересечение границы, т.к. Model Вы и Fesor зачем-то на границу поместили.
(б) поскольку и контроллер, и представление знают о модели, они оба живут в одном слое (иначе будет нарушено правило непересечения слоев)

Я вот это не очень понял. Тут вот это подразумевалось?

поскольку и Controller, и View знают о Model, они оба (Controller и View?) живут в одном tier(?) (иначе будет нарушено правило непересечения tier(?))
И сразу в дополнение вот отсюда (предыдущее оттуда же было):

Figure 4-1. Building blocks of the Model-View-Controller architectural pattern. Solid
lines represent direct connections, dashed lines represent indirect connections

Figure 5-1. The VisualWorks version of MVC, which separated the concepts of domain
model and application model. (Bower & McGlashan 2000)

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

4.1.1 Model
The model is a non-visual object containing all the data and behaviour other than that
used for its presentation to the user (Fowler 2003). Model represents the data and
state (Freeman et al. 2004) of an application and the domain logic that manipulates it
(Buschmann et al. 1996).

4.3.1 Separated Presentation or Model-View
The most fundamental principle in the Smalltalk MVC and all the others that followed,
is to separate the elements seen on the screen i.e. presentation or user interface, and
the set of classes that are concerned with the core of the application, i.e. the domain
objects or data management (Potel 1996; Fowler 2003). Fowler (2006b) refers to this
as Separated Presentation, while Sanderson (2010) names it Model-View (figure 4-
2).
Another strict rule is visibility: the presentation can call the domain objects, but not
vice-versa. The domain objects should be completely self contained and unaware of
any presentations. This is in fact a form of a layered architecture. The visibility rule can
even be validated with build-time tools. (Fowler 2006b)
Да в общем-то и там и там не проглатывает:
1.х: plnkr.co/edit/POgFi6FHZk1cyhf75NgA?p=preview
2.х: plnkr.co/edit/sQdCcD2tPrtEt4rBFst4?p=preview
В Angular тоже можем просто добавлять элементы в цикле, выбор то объекта вместо текстового значения как будет происходить?
«Это же простая итерация по массиву объектов! Зачем она вообще?» — спросит реактовод.
«А затем, что иначе вы не сможете в значение option передать что-то кроме строки!»
«Ну, знаете ли...»

А как это будет выглядет в реакте?
Это не мне — это документации React-а.

А чего там мощного, вы фактически и идете по пути ограничения всея мощи, чтобы if-ов не было (только тернарный оператор), switch-ей тоже, т.е. искусственно накладываете ограничения на используемый синтаксис.

Information

Rating
Does not participate
Location
Таганрог, Ростовская обл., Россия
Registered
Activity