Как стать автором
Обновить
1
0
Alexey Morshnev @cybernomix

разработчик

Отправить сообщение
«Декларативный» стиль и отлаживать-то невозможно

Да щито вы говорите?
Стыдно должно быть за попытку выглядеть умным, но не знать что такое декларативный стиль не в языках разметки.

Императивный стиль
int F(int x) { return x*x; }

int sum = 0;
for (int i=0; i<arg.Length; i++)
{
  if (arg[i] > 10) sum += F(arg[i]);
}


Декларативный стиль
int F(int x) { return x*x; }

int sum = arg.Where(x => x > 10).Sum(F);


Source: Императивный vs Декларативный стиль
хорошо, со switch case — пример не удачный, просто понятие «декларативности» в обиходном сленге расширилось, но вы цепляетесь за слова, вт вам пример про декларативный стиль языков программирования типа Lua, а не только языков разметки. (И да это особенно удобно когда погружаешь программный язык в какой-то язык разметки — просто в статье частный случай).

Основы декларативного программирования на Lua
Уж и Java то прощаем сквозь закрытые пальцы ее пропритеарные щупальца Oracle, но хотя бы нет вендор-лока на ОСь, но с C# вы на поводке .NET и MS, а это уже никак не может быть правильным, особенно в Sci-деве. Не знаю, что у вас за наука, но в научных кругах я слышал тягу к более академичным вариантам. Ну хотя бы Python. Хотя быстрым его не назовешь. Но наука традиционно не тороплива.
Высокого — да. Это те, кто прошли последнюю ступень искушения «использую, потому что могу» и перешли в стадию просвещенных «не использую, потому, что знаю».
Остроумие не засчитано. Стиль != язык. Декларативный стиль это например использование более многословных конструкций switch case, чем хитроумных условий, особенно многовложенные одстрочные тернарные условия, как у js.

Что нить типа такого:
smallestNum = (x<y && x<z)? x: (y<x && y<z)? y: (z<y && z<x)? z;
Еще я считаю что гейзенбаги — как ни странно — растут именно с ростом скилла разработчика, которые начинают юзать все более ловкие и «умные» конструкции в программировании, что и порождает таких баг-монстров. Более «тупой» или «декларативный» стиль, пусть и выглядящий порой более скучно и уныло — на деле же редко породит такие баги.
Все эти холивары бессмысленны, вопрос лежит в плоскости выше.
Более того, я бы отметил, что Java удивительна еще своей скоростью при тех требованиях что на нее возложены.

Когда вам надо сверхбезопасную среду, по памяти, по вычислениям, кроссплатформенную. Вы не хотите вникать в энтропию проблем которые роятся вокруг разнородных платформ — вы «лиса и хотите фыр-фыр» ©. Если у вас бизнес-задача, где приоритетом является максимальная и параноидальная детерминированность процесса — и цена ошибки выше цены скорости ее выполнения (банки, крупные предприятия) — то очевидно, что Java умеющая правиальную финансовую математику, дотошные проверки, самопроверки, огромную иерархию объектов с тестированием, самотестированием, с аспектными срезами — это ваш выбор.

И ясно что даже если вы сами все это напишите на C++ (что вряд ли) — то получите ту же скорость (а в силу отсутствия у вас сил и скиллов на кв.метр — скорее всего и хуже).

Или простой ответ: вам надо доехать в танке с подушками безопасности и катапультирующейся титановой капсулой на самый крайний момент — ваш выбор Java. Вы едете угрюмо по скорости, но весьма комфортно и спите спокойно, даже за рулем. Или вы хотите просто переехать высокоскоростную магистраль на скейте? Чтобы доставить пиццу? — возможно ваш выбор C++

Не думаю, что он безвоздушный, судя по первому ролику, в продашкн-версии это будет монотурбина диаметром с трубу, т.е. дополнительно к магниторельсу, еще и всасывает и выталкивает воздух, т.е. фактически будет значительно поглощать сопротивление воздуха и даже его (воздух) использовать для движения.
но на этот-то то урл вы с target="_blank" конечно ходите, а поделитесь как делаете редирект чтобы максимально гарантировано сохранить рефера
Да, только в обоих случаях выше HTTP_REFERER — тоже потеряется, увы (сам удивляюсь зачем это в жесткой связке стоит)
P.P.S: Увы, вынужден растоптать надежды, HTTP-заголовком Access-Control-Allow-Origin: selfdomain это не решается, как с гуся вода, это только для XMLHttpRequest канает и то с целью наоборот.

Вижу только один путь: раз это «баг» идёт от JS, то JS-ом он и должен решаться, у кого js не работает, у того и «баг» не работает — всё просто.
А js-ом это как раз полечить можно вдоль и поперёк.
Таким грешат многие сайты, а некоторые, даже не считают это за проблему «на своей стороне»
Воу воу воу, то что там «с формой бобра» по ссылке — это совсем из другой оперы, да и повеселее будет — это подмена url'a в адресной строке на «чтохочу.com» и она работает в Chrome.
Вот это день «интересных историй»… я думал такие забавы остались где-то в середине 00-ых… печаль.
Только что протестил, всё еще хуже, в том числе в обозримом будущем…
rel=«noopener» — так же лишает HTTP_REFERER (Chrome 49.x), т.е. очень похоже что это «костыль» или alias на всё тот же nofollow… всё плохо в индустрии… :(
В картографии это называется Картографическая генерализация
Процесс этот умышленный и осознанный, кол-во раскрываемых объектов на каждом слое масштаба.
Я думаю это поведение останется таким и в будущем, ради обратной совместимости, т.к. _blank, является дочерним фреймом (если формально).
А вот rel=«noopener» должен выключать такое поведение. Т.е. у разработчика есть выбор какое поведение ему нужно.

Де факто, же это «гадость полнейшая», когда речь о cross-domain scope.

P.S.: Может можно на серверной стороне поотключать средствами заголовков, типа Server-Side Access Control через HTTP_ORIGIN?
Одновременно поломав передачу HTTP_REFERER по вашим ссылкам. В лучшем случае принимающая сторона не посчитает вас, как источник трафика, в худшем могут не засчитать какие-то рекламные переходы… не очень хороший костыль
2

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность