metaclass: (Default)
[personal profile] metaclass
Есть такой неплохой веб-фреймворк для гопнета: https://github.com/NancyFx/Nancy
Нормальный роутинг, более-менее адекватные методы хостинга сервисов, convention over configuration, более-менее прилично написанный код (сильно лучше чем говно WCF), встроенная dashboard для диагностики, сделанная на самом этом фреймворке, IoC во все поля, итд.

Но даже там творится черняга. catch(Exception), отсутствие логов и возможности воткнуть (ну, не считая метода "делаем как удобно, внося зависимость от логгера") какой-нибудь log4net и самое смешное: модули-обработчики роутов создаются на каждый запрос, при этом роуты создаются тут же в конструкторе этого модуля. Хотя реально это нужно 1 раз при инициализации-загрузке приложения, и более того - иногда удобнее иметь один инстанс модуля-обработчика на все запросы, вместо создания нового инстанса каждый раз.

И вот такое в дотнете - сугубо на каждом шагу, дроч на паттерны, дроч на инкапсуляцию вплоть до того, что объективно нужные классы и их свойства иначе как рефлекшеном не вытащишь и при этом - бредовые архитектурные решения. "Место проклятое".

Date: 2013-10-06 09:22 am (UTC)
From: [identity profile] aliaksei.livejournal.com
В последнем абзаце ты описал даже не дотнет, а типичную ойти контору.

Date: 2013-10-06 12:31 pm (UTC)

Date: 2013-10-06 10:14 am (UTC)
From: [identity profile] bydlorus.livejournal.com
> public dynamic Filtered(dynamic parameters)

Чота я за 2 года С++ отстал от модных дотнет тенденций.

Date: 2013-10-06 10:46 am (UTC)
From: [identity profile] metaclass.livejournal.com
Зависимых типов нет, вывода типов нормального нет - "делаем из дотнета руби, пхп и питон".

Date: 2013-10-06 11:22 am (UTC)
From: [identity profile] denisioru.livejournal.com
За такой код - лоботомию делать.

Date: 2013-10-06 11:28 am (UTC)
From: [identity profile] metaclass.livejournal.com
public class ClojureHashmapInGopnet:Dictionary
[Error: Irreparable invalid markup ('<dynamic,>') in entry. Owner must fix manually. Raw contents below.]

public class ClojureHashmapInGopnet:Dictionary<dynamic, dynamic> {

new public dynamic this[dynamic key] {
get {
dynamic v;
if(TryGetValue(key, out v)){
return v;
}else{
return null;
}
}
set{
((Dictionary<dynamic, dynamic>)this)[key] = value;
}

}

}

Date: 2013-10-06 11:29 am (UTC)
From: [identity profile] denisioru.livejournal.com
блядь ужас какой.

Date: 2013-10-06 12:12 pm (UTC)
From: [identity profile] bydlorus.livejournal.com
Чем-то неуловимо напоминает единственную кнопку с надписью "Сделать зашибись".

Date: 2013-10-07 05:00 am (UTC)
From: [identity profile] blackyblack.livejournal.com
Как-то по-хипстерски. :)

Date: 2013-10-06 11:30 am (UTC)
From: [identity profile] tretiy3.livejournal.com
а зачем пользовать какой-то фреймворк, если есть из коробки asp.net mvc?

Date: 2013-10-06 11:39 am (UTC)
From: [identity profile] metaclass.livejournal.com
Так сумасшедшие все. Оно поверхностно выглядит нормальным, а как доходит до дела - вечно какой-то трэш.
Шаг в сторону от прибитых гвоздями практик и начинается такое вуду, что проще с нуля написать, чем днями в рефлекторе изучать логику работы индусского кода.

Date: 2013-10-06 12:17 pm (UTC)
From: [identity profile] avnik.livejournal.com
а зачем ты продолжаешь себя мучать этим дотнетом?

Date: 2013-10-06 12:30 pm (UTC)
From: [identity profile] theiced.livejournal.com
он ещё опердени для уебланов пишет. я тоже не понимаю.

Date: 2013-10-06 12:43 pm (UTC)
From: [identity profile] avnik.livejournal.com
ну он их хотя бы на кложе пишет.
А тут бездны какие-то.

PS Мне тут правда недавно пришлось в джаву заглянуть, там тоже паттерн на паттерне

Date: 2013-10-06 12:49 pm (UTC)
From: [identity profile] permea-kra.livejournal.com
> convention over configuration,

Вы так говорите, как будто в этом есть что-то хорошее.

Date: 2013-10-06 12:57 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Ну конкретно в этом месте там все хорошо сделано.
Есть разумные умолчания, они работают, можно переопределить, если нужно.

Date: 2013-10-07 02:42 am (UTC)
From: [identity profile] permea-kra.livejournal.com
Имхо, нужно давать дефолтную конфигурацию и позволять её прикрутить как есть или покопаться внутри. А все эти умолчания прижигать каленым железом.

Date: 2013-10-07 05:02 am (UTC)
From: [identity profile] blackyblack.livejournal.com
А ещё все пейсатели на дотнете пренебрегают документацией. Берёшь библиотеку и пытаешься угадать, какие параметры нужно передавать в метод. А если IOC или Factory, то даже и не пытаешься угадать.

Date: 2013-10-07 12:49 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
Неплохой? Это ж пиздец, где главное, чего хотели разработчики - написать DSL. Так и я могу.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 25th, 2025 02:54 am
Powered by Dreamwidth Studios