Резюме для программиста
Мне тут талдычат, как они не лучше бедных живут, если "чисто математически". А по личным ощущениям так и вообще несчастнее. Обычное лицемерное нытьё богатеньких. ))
Вот бомж Вася лежит под забором бухой, пузыри пускает с блаженной лыбой на лице - счастлив 24/7. А вот богатый Ганц или Джон - налоги заплати, за ипотеку заплати, за яхту кредит заплати, с семьёй три раза в год поездку в отпуск запланируй, места забронируй, и ещё жена просила инструктора ей для йоги личного нанять, чтобы она с ним дома занималась в перерывах между ведением домашнего хозяйства, пока муж на работе - вобщем, полно проблем.
Короче, богатый живёт лучше бедного?
Богатый живет богаче бедного :) Отличить богатого от бедного очень просто - богатый не тратит львиную долю своего дохода на поддержание своей жизни.
И не понимаю, как можно из холода ехать в ещё больший холод (неважно, кататься или ещё что).
Это потому что ты никогда не катался :D
А вообще на склонах жарко. Не помню такого, чтобы я будучи на склоне заверзал :D
Ездить надо туда, где тепло и море.
Смотря что там делать :) Валяться 2 недели на лежаке - так себе отдых. Я больше 2-х дней не выдерживаю :D Вот помню мы с женой в июне ездили на 2 недели в Норвегию - красота неописуемая. Температура - в районе +13, но через 15-20
минут движения становится жарко. Замерзли мы там только в одном месте - когда шли на Кьераг, но там реально не повезло с погодой... все таки град - не самая лучшая погода для горных вылазок :D А так, когда мы шли на язык троля, то в конце тропы шли уже в футболках посреди нерастаявшего снега :)
А летом в жару ходить по горам - прикольно конечно, но надо много воды с собой таскать.
Валяться 2 недели на лежаке - так себе отдых. Я больше 2-х дней не выдерживаю
Я лодку-доску надувную купил. Лежаки нафиг - выплыл на лодке подальше, лёг и качаешься себе на волнах. Никто не мешает, не ходит. Главное, чтобы не унесло.
На местных водоёмах довольно быстро скучно становится - волн нет, водоёмы маленькие. Когда выучишь основное управление (часов 10-20), потом научишься чего повыпендрёжнее (я могу на голове на этой лодке стоять даже при небольших волнах, а с весны "боевой разворот" буду изучать и прочий "экстрим"), то быстро становится скучно. На море немного получше, но с такими толстыми лодками серфить не получается - их тупо разворачивает вдоль волны и переворачивает. Да и волны на внутренних морях маленькие. Ну я поплавал на ней, через каналы попереплывал (хотя там довольно опасно, если суда ходят - могут волной опрокинуть), на соседние пляжи заплывал. Но всё равно этого максимум ещё на год и всё - надоест. Вот, хочу примерно такую же, но с парусом взять. Её гораздо дольше осваивать, плюс дальше и быстрее уплыть можно. А на весле у дешёвых лодок я быстро это весло расшатал.
С этими надувными лодками ещё проблема - где их хранить и как перевозить в надутом состоянии. Последний раз повезло - достался номер отеля на первом этаже, так я эту лодку как один раз надул, так до конца отпуска и не сдувал - так в номер и заносил. Но она больше 3 метров длиной, так что много места занимает. И надутую почти ни в какую машину не затащишь - там даже если все сиденья складывать, то надо фургон от 5 метров длиной, который стоит от 50к. А если постоянно такую лодку надувать-сдувать, разворачивать-сворачивать, то долго она не протянет. Да и заманаешься.
А в горах и прочие лыжи мне не нравится - не люблю потеть в холодном климате и потом в собственном соку на морозе и ветру торчать. Хоть там термобельё, хоть комбинезон - всё это неприятно. Ну и лыжи или сноуборд тупо опаснее, и в европейских условиях требуют ещё больше усилий для занятий, чем даже лодка - надо ездить далеко к горам и только в холодное время года. А до местных озёр я за полчаса-час доеду, и выбор есть. Плюс можно по полгода плавать, особенно если даже простой гидрокостюм купить.
как найдёшь пример, где без этого изврата не обойтись - пиши
Юзер может выбирать, какие колонки в таблице показывать. Значит, запросы надо конструировать с динамическим списком сущностей и их составом. Как будете делать? Где-то сохранять список выбранных колонок и потом в голый SQL через параметры строки подставлять?
Занимательная штука. Самолёты и машины начали почти в одно время, но машины ездили быстрее, чем летали самолёты, целых первых примерно 30-40 лет. Речь, конечно, о рекордах скорости. И если бы не Вторая Мировая, в которой авиация получила мощнейший пинок в развитии, в отличие от машин, может это продолжалось бы ещё лет 30-40. Это потом уже машинки стали брать на вооружение авиационные двигатели, чтобы ставить рекорды езды.
Юзер может выбирать, какие колонки в таблице показывать.
прям свободно писать названия свойств класса?
ну ок, для такого пригодится.
Не сильно распространённая задача
Плюс данные надо будет ещё в каком-то динамическом элементе показывать
Ну и надеюсь, SQL инъекции эта библиотека умеет блокировать.
Я смотрю код разных библиотек, и там если надо хранить некое универсальное значение (скажем, для контейнера в котором может храниться почти любой тип), то многие используют object. Например
public void SetFilterValue(object value)
{
if (
(FilterPropertyType == typeof(DateTimeOffset)
||
FilterPropertyType == typeof(DateTimeOffset?)) && value != null && value is DateTime?)
}
И это ещё "скромно". Такое есть в исходниках многих либ, в том числе "солидных", в которые коммитят или за которыми следят разные "гуру" и "евангелисты", главные по разработке какого-нибудь широко используемого фреймворка (вот как этот). Часто втречаются деревья на десятки if и прочих ветвлений, т.к. основной контейнер для хранения чего-то сделан универсальным (типа object или string), и потом его значение долго парсят по типам или из строки.
Похоже, что это норма и всякие "семизнаки и гуры" этим не брезгуют. ))
Я всегда считал, что есть, наверное, какой-то более надёжный с точки зрения ООП способ. Например, как-то продумать систему классов, чтобы для каждого типа был свой строготипизированный контейнер. А тут гуры лепят не оглядываясь портянки и в динамике проверяют типы, как какие-нибудь джаваскриптизёры. Что интересно, что в их статейках "как надо программировать" таких портянок обычно не встретишь - там как раз рассусоливания о гениальных структурах кода и проектировании систем классов на примерах разных животных или автомобилей - всё аккуратненько, коротенько и цивильно. Вот есть кошечки и собачки, а вместе они животные и живут в маленьком уютном домике - вот вам родитель, вот потомок,
вот контейнер. Видите, как хорошо, тепло и чистенько. Никаких портянок, никаких выведений типов из object или строк.
ООП-садомазо. Некоторые ещё любят проперти исключительно через рефлексию читать - ну чтобы совсем динамичненько было.
В Юнити 3Д сделали всё на "has a" (а-ля компоненты) и не трахают себе мозги всякими изъё..ми. ))
50 баксов в час за тестировщика? Разве что в Силиконовой Долине. Но там и расценки у уличных работниц повыше, поди - так что полтинником не отделаешься.
хреново начинать
судя по блогам эмигрантов и по нескольким моим знакомым.. то в книжном магазе работают, то на бензоколонке.. мусорщиками..
это тут были ученые, и прогеры даже..
а дальше или там затерялись и ни ответа ни привета или сюда вернулись
работа должна приносить лямы и точка. и оставлять место тратить эти лямы.
а не выживать.
Вобщем, где-то была речь про Dynamic LINQ - зачем нужен и минус, что не типобезопасно. Тут они вкратце объяснили, зачем нужен. Кроме полностью динамических запросов, можно ещё создавать динамические классы данных - т.е. с разным числом, типами и названиями свойств. И вот это последнее очень помогает в ситуациях, когда юзер может выбирать, какие свойства таблицы показать, какие поля сохранить или экспортировать куда-нибудь. Как я сказал, некоторые либы - тот же Радзен фреймворк - свою функциональность полностью на этом основывают. Правда, для этого они в этом динамическом линке придумали свой язык запросов, но то мелочь.
Можно, конечно, и своё расширение написать по созданию типов динамически. Но раз за нас уже люди постарались, то почему бы не использовать готовую библиотеку?
Или ещё можно с анонимными типами что-то делать. Но у них вроде область видимости в пределах текущего блока, нет? И их всё равно надо приводить к какому-то конкретному типу потом.
И раз уж у нас даже всякие гуры непрочь иногда тайком подинамичить, поскриптизировать, балуясь с сериализацией в строки и шаля хранением всего в object, то жаловаться на Dynamic LINQ, что там что-то не строготипизированно - двуличие. Все мы под богом ходим. ))
Вот как они юнит тесты пишут. Сами тесты примитивные насколько это возможно. Лишь портянки входных параметров и ожидаемых условий, задаваемых через аннотации. Ну это сейчас во всех фреймворках юнит-тестов. А вот какие-то цепочки методов Should().Be() как расширения над стандартными типами... Странный Xunit.
------
Если уж челы сумели написать(сгенерировать, ибо руками это давно не пишут) парсер, то сгенерировать листинг параметров по грамматике для них пустяки...
Вам не кажется, что раз челы придумывают динамический Линк, свой язык для него, то с вашим основным языком что-то не так? Не хватает, понимаешь, возможностей?
Да успокойтесь вы уже со своей генерацией кода. Не сошёлся на ней свет клином. Раз гуры фигачат всё в строки и object, то и руками натолкать листинг параметров для них не должно быть чем-то из ряда вон.
Ещё про динамический Линк. А почему в обычном изначально не догадались сделать сортировку так же просто, как в динамическом? И ведь даже сейчас можно сделать, не руша обратную совместимость - просто добавить перегрузку метода OrderBy с параметрами params. Или просто поменять существующую сигнатуру.
LINQ
1: var ordered = context.Customers 2: .OrderBy(c => c.City).ThenBy(c => c.CompanyName) 3: .ToList();
Dynamic LINQ
1: var orderedDynamic = context.Customers 2: .OrderBy("City, CompanyName") 3: .ToList();
Если кто-то боится динамического скриптиза без строготиповой защиты, то в DLINQ работает и такое, хотя это и изврат
.OrderBy($"{nameof(City)}, {nameof(CompanyName)}")
Или даже так - не требует создания объекта Customer для указания его свойств
.OrderBy($"{nameof(Customer.City)}, {nameof(Customer.CompanyName)}")