Статья именно о том, о чем говорится в заголовке - о честных взаимоотношениях между руководителем и подчиненным в команде и о контрофферах.
Если кратко - контрофферы будут не нужны, если вы правильно (честно) выстроите отношения с подчиненными.
А со стороны подчиненных - если вы идете получать оффер, чтобы повысить зарплату на текущем месте работы, то это "работа курильщика" и лучше меняйте ее. Да и вообще нет ничего плохого в том чтобы менять работу, если в текущей вас что-то не устраивает и исправить вы это не можете.
#careerbuilding
https://habrahabr.ru/company/yandex/blog/347246/
Если кратко - контрофферы будут не нужны, если вы правильно (честно) выстроите отношения с подчиненными.
А со стороны подчиненных - если вы идете получать оффер, чтобы повысить зарплату на текущем месте работы, то это "работа курильщика" и лучше меняйте ее. Да и вообще нет ничего плохого в том чтобы менять работу, если в текущей вас что-то не устраивает и исправить вы это не можете.
#careerbuilding
https://habrahabr.ru/company/yandex/blog/347246/
Хабр
Честный подход к управлению людьми, или Почему я никогда не делаю контрофферы
К сожалению, в условиях жёстких бизнес-целей честность иногда отодвигается на второе место. Осознанно занижают зарплаты, рисуют заведомо недостижимые карьерные п...
"Программист-прагматик" уже давненько лежит в моей библиотеке, дожидаясь своего часа, было интересно прочитать краткий конспект первых 4 глав.
#bookreview
https://habrahabr.ru/company/everydaytools/blog/348116/
#bookreview
https://habrahabr.ru/company/everydaytools/blog/348116/
В новости про Blazor https://teleg.eu/dotnetter/625 больше всего удивляет то, что dotnet в браузере запустили, а я все думал что webassembly ненужная фигня. Это же какие возможности для построения приложений в браузере открываются.
Telegram
Апатичный дотнетчик
A new experiment: Browser-based web apps with .NET and Blazor
Today I’m excited to announce a new experimental project from the ASP.NET team called Blazor. Blazor is an experimental web UI framework based on C#, Razor, and HTML that runs in the browser via…
Today I’m excited to announce a new experimental project from the ASP.NET team called Blazor. Blazor is an experimental web UI framework based on C#, Razor, and HTML that runs in the browser via…
Сегодня столкнулся с такой задачей:
Есть список объектов, каждый объект имеет свойство ElementId. Это свойство может быть одинаковым у нескольких элементов. Нужно уметь быстро выбирать объекты из этого списка по ElementId. Первое, что приходит в голову - это использовать Dictionary<>. Например, нам подойдет Dictionary<long, List<SomeType».
Вот так будет выглядеть код преобразования изначальной коллекции в нужный нам словарь:
Но оказывается, что с .NET 3.5 есть встроенный тип данных специально для таких случаев - Lookup - https://msdn.microsoft.com/en-us/library/bb460184.aspx.
В итоге весь код выше, превращается в:
#datastructures
Есть список объектов, каждый объект имеет свойство ElementId. Это свойство может быть одинаковым у нескольких элементов. Нужно уметь быстро выбирать объекты из этого списка по ElementId. Первое, что приходит в голову - это использовать Dictionary<>. Например, нам подойдет Dictionary<long, List<SomeType».
Вот так будет выглядеть код преобразования изначальной коллекции в нужный нам словарь:
var objDict = new Dictionary<long, List<SomeType>>();
foreach(obj in objList)
{
if(objDict.Contains(obj.ElementId))
{
var currentObjList = objDict[obj.ElementId];
currentObjList.Add(obj);
continue;
}
objDict.Add(obj.ElementId, new List<SomeType> { obj });
}
Но оказывается, что с .NET 3.5 есть встроенный тип данных специально для таких случаев - Lookup - https://msdn.microsoft.com/en-us/library/bb460184.aspx.
В итоге весь код выше, превращается в:
var objLookup = objList.ToLookup(obj => obj.ElementId);
#datastructures
Интересные статьи на этой неделе
Почему вам должно быть скучно на работе
https://habrahabr.ru/post/348614/
Дельная статья с подходом к работе, можно сказать что это методика, который позволяет продуктивнее работать. В комментариях, как всегда, вылезли те, кто считает, что если вы прокрастинируете, то вам нужно менять работу. Я не согласен с этой точкой зрения, в любой, даже самой интересной работе, будут части, которые вам не хочется делать. Да и вообще - психика сложная штука и заточена она в первую очередь на экономию энергии и выживание, а не на достижение интересных целей, поэтому нет ничего плохого, чтобы немного поднастроить механизмы психики в нужную сторону. И да - я знаю о Лабковском и Невротиках, если хотите можем обсудить это за чашечкой чая.
Самое опасное слово в разработке программного обеспечения
https://habrahabr.ru/post/348406/
Коротенькая статейка о слове "Просто", которое так любят наши руководители и заказчики, подписываюсь под каждым словом и под большинством комментариев.
#workingprocess
Почему вам должно быть скучно на работе
https://habrahabr.ru/post/348614/
Дельная статья с подходом к работе, можно сказать что это методика, который позволяет продуктивнее работать. В комментариях, как всегда, вылезли те, кто считает, что если вы прокрастинируете, то вам нужно менять работу. Я не согласен с этой точкой зрения, в любой, даже самой интересной работе, будут части, которые вам не хочется делать. Да и вообще - психика сложная штука и заточена она в первую очередь на экономию энергии и выживание, а не на достижение интересных целей, поэтому нет ничего плохого, чтобы немного поднастроить механизмы психики в нужную сторону. И да - я знаю о Лабковском и Невротиках, если хотите можем обсудить это за чашечкой чая.
Самое опасное слово в разработке программного обеспечения
https://habrahabr.ru/post/348406/
Коротенькая статейка о слове "Просто", которое так любят наши руководители и заказчики, подписываюсь под каждым словом и под большинством комментариев.
#workingprocess
Хабр
Почему вам должно быть скучно на работе
Эти советы, возможно, не все найдут полезными. Они адресованы тем, кому на работе бывает скучно. Так скучно, что уныние немного скрашивают лишь утренний контакти...
Сегодня статья про DRY
https://habrahabr.ru/company/mailru/blog/349978/
Оказалось, что принцип DRY был впервые описан в книге "Программист Прагматик", которую я обязательно прочитаю в будущем.
Принцип DRY о дублировании знания (обычно к знаниям относят бизнес-логику или алгоритмы), а не кода, поэтому:
1. Дублирование знания является нарушением принципа DRY.
2. Дублирование кода не обязательно является нарушением принципа DRY.
Неправильное применение принципа DRY приведёт к:
1. Бесполезным абстракциям
2. Преждевременной оптимизации
Которые в свою очередь приведут к увеличению сложности и ненужному объединению кода.
В комментах дали ссылку на "Правило трёх":
https://en.wikipedia.org/wiki/Rule_of_three_(computer_programming)
Которое говорит, что дублирование однозначно вредно, если код дублируется в трёх местах, и может быть как вредным так и нет, если дублируется в двух.
#programmingprinciples
https://habrahabr.ru/company/mailru/blog/349978/
Оказалось, что принцип DRY был впервые описан в книге "Программист Прагматик", которую я обязательно прочитаю в будущем.
Принцип DRY о дублировании знания (обычно к знаниям относят бизнес-логику или алгоритмы), а не кода, поэтому:
1. Дублирование знания является нарушением принципа DRY.
2. Дублирование кода не обязательно является нарушением принципа DRY.
Неправильное применение принципа DRY приведёт к:
1. Бесполезным абстракциям
2. Преждевременной оптимизации
Которые в свою очередь приведут к увеличению сложности и ненужному объединению кода.
В комментах дали ссылку на "Правило трёх":
https://en.wikipedia.org/wiki/Rule_of_three_(computer_programming)
Которое говорит, что дублирование однозначно вредно, если код дублируется в трёх местах, и может быть как вредным так и нет, если дублируется в двух.
#programmingprinciples
Хабр
Ошибочное понимание принципа DRY
Я знаю, о чём вы подумали: «Ещё одна скучная статья про DRY? Нам их мало, что ли?». Возможно, вы правы. Но я встречаю слишком много разработчиков (junior и sen...
Защитное программирование
https://habrahabr.ru/post/191548/
Старый перевод старой статьи Марка Симана, автора книги "Внедрение зависимостей в .NET". В ней он рассуждает о концепции защитного программирования, также описанной в книге "Совершенный код" (впервые?).
Статья в основном сосредоточена на проблеме NullRefferenceException, хотя защитное программирование в целом касается намного большего круга вопросов.
Суть такова:
Ваш код не должен возвращать и передавать в другие методы null. Если вы находитесь в защищенной местности (область кода в которой вы можете быть уверены, что null вам не будет возвращен из метода или свойства объекта), то вы можете быть уверены, что null вы сами никуда не передадите, соответственно никакие дополнительные проверки для этого не нужны и всё сводится к:
1. Проверяйте данные приходящие из незащищённой местности (пользовательский ввод, системы не являющиеся вашей зоной контроля или не следующие концепции защитного программирования).
2. Не возвращайте в защищённой местности из ваших методов и объектов null.
#defensivecoding #cleancode
https://habrahabr.ru/post/191548/
Старый перевод старой статьи Марка Симана, автора книги "Внедрение зависимостей в .NET". В ней он рассуждает о концепции защитного программирования, также описанной в книге "Совершенный код" (впервые?).
Статья в основном сосредоточена на проблеме NullRefferenceException, хотя защитное программирование в целом касается намного большего круга вопросов.
Суть такова:
Ваш код не должен возвращать и передавать в другие методы null. Если вы находитесь в защищенной местности (область кода в которой вы можете быть уверены, что null вам не будет возвращен из метода или свойства объекта), то вы можете быть уверены, что null вы сами никуда не передадите, соответственно никакие дополнительные проверки для этого не нужны и всё сводится к:
1. Проверяйте данные приходящие из незащищённой местности (пользовательский ввод, системы не являющиеся вашей зоной контроля или не следующие концепции защитного программирования).
2. Не возвращайте в защищённой местности из ваших методов и объектов null.
#defensivecoding #cleancode
Хабр
Защитное программирование
Один из моих читателей, Барри Гайлз, недавно написал мне и задал достаточно интересный вопрос, который, по моему мнению, достоен обсуждения: «Недавно я столкнул...
Прошлое и будущее командной строки Windows
Серия статей про командную строку Windows. Здесь всё что вы хотели знать о ней, но боялись спросить. Ну как минимум стоит прочитать, если хотите узнать чем отличается TTY, PTY, терминал, консоль и командная строка.
https://blogs.msdn.microsoft.com/commandline/2018/06/20/windows-command-line-backgrounder/
Серия статей про командную строку Windows. Здесь всё что вы хотели знать о ней, но боялись спросить. Ну как минимум стоит прочитать, если хотите узнать чем отличается TTY, PTY, терминал, консоль и командная строка.
https://blogs.msdn.microsoft.com/commandline/2018/06/20/windows-command-line-backgrounder/
Тут вышло интервью одного сеньора дотнет разработчика, в общем-то ничего экстраординарного, но всё-равно читать было интересно:
https://habr.com/post/420321/
Несколько мыслей возникших у меня после прочтения:
1. С возрастом хочется всё меньше скоростного "бездумного" программирования и горящих сроков, а больше заниматься изучением интересных тебе вещей. И вообще было бы неплохо сделать свой рабочий день официально 6 или даже 4-х часовым.
2. Прежде чем сказать, что весь вчерашний день занимался фиксом бага, сначала воспроизведи его.
https://habr.com/post/420321/
Несколько мыслей возникших у меня после прочтения:
1. С возрастом хочется всё меньше скоростного "бездумного" программирования и горящих сроков, а больше заниматься изучением интересных тебе вещей. И вообще было бы неплохо сделать свой рабочий день официально 6 или даже 4-х часовым.
2. Прежде чем сказать, что весь вчерашний день занимался фиксом бага, сначала воспроизведи его.
Habr
«Я бесполезный дурак и хочу уволиться» — 10 вопросов программисту, пилотный выпуск
Привет, Хабр! Помните историю про Стива Джобса и Денниса Ритчи ? Не хотим снова устраивать споры и читать морали, но правда остается правдой — тысячи крутых технарей сидят в тени, а их истории...
Каждый раз, когда читаешь как люди готовятся к собеседованиям в крупную IT компанию, содрогаешься внутри и в очередной раз откладываешь смену работы куда-то подальше - не хочется тратить гигансткое количество времени на подъем в оперативную память всего того материала, который ты не использовал последние годы, а иначе бы ты и так его помнил.
С другой стороны, целенаправлнное изучение Computer Science в течении двух лет не может не вызывать восхищение и недоумённый вопрос к себе: Почему же я так не могу?
https://habr.com/post/419945/
#jobinterview
С другой стороны, целенаправлнное изучение Computer Science в течении двух лет не может не вызывать восхищение и недоумённый вопрос к себе: Почему же я так не могу?
https://habr.com/post/419945/
#jobinterview
Habr
Как подготовиться к собеседованию в Google и не пройти его. Дважды
Заголовок статьи звучит как epic fail, но на самом деле все не так однозначно. Да и в общем и целом эта история закончилась весьма позитивно, хоть и не в Google. Но это уже тема для другой статьи. В...
Скрин из комментов к статье об устройстве в Google.
То что придя в Google или в Яндекс, будешь в первую очередь заниматься изучением их внутренних библиотек и прочей только для них специфичной инфраструктуры, а не общих для индустрии вещей, еще один мощный останавливающий фактор для трудоустройства в них.
То что придя в Google или в Яндекс, будешь в первую очередь заниматься изучением их внутренних библиотек и прочей только для них специфичной инфраструктуры, а не общих для индустрии вещей, еще один мощный останавливающий фактор для трудоустройства в них.
Благая весть идёт: предстоящий .NET Core 3 принесёт нам возможность выгружать сборки из памяти. Сделать это можно будет с помощью класса AssemblyLoadContext.
А вот тут инструкция по использованию.
Так как .NET Core забрал у нас Домены Приложений, а это была единственная возможность выгрузить сборку в управляемом коде, то новость просто отличная.
А вот тут инструкция по использованию.
Так как .NET Core забрал у нас Домены Приложений, а это была единственная возможность выгрузить сборку в управляемом коде, то новость просто отличная.
Docs
AssemblyLoadContext Class (System.Runtime.Loader)
Represents the runtime's concept of a scope for assembly loading.
Статья с хорошим объяснением механизма работы джойнов. Если вы забыли, то джойн даёт в результате декартово произведение записей двух таблиц.
А пока читал вспомнил, что когда работал с NHibernate при джойне двух таблиц со связью один ко многие, часто сталкивался с проблемой появления дублирующихся записей в результате выборки. Интересно, можно ли такую аномалию получить при использовании Entity Framework.
#базыданных
А пока читал вспомнил, что когда работал с NHibernate при джойне двух таблиц со связью один ко многие, часто сталкивался с проблемой появления дублирующихся записей в результате выборки. Интересно, можно ли такую аномалию получить при использовании Entity Framework.
#базыданных
Хабр
Понимание джойнов сломано. Это точно не пересечение кругов, честно
Так получилось, что я провожу довольно много собеседований на должность веб-программиста. Один из обязательных вопросов, который я задаю — это чем отличается INN...
Оказывается Entity Framework Core может использовать INotifyPropertyChanged интерфейс для того, чтобы напрямую узнавать о изменениях в моделях и не использовать снапшот данных для их поиска. Думаю, что это можно попробовать использовать в высокопроизводительных сценариях.
#entityframework
#entityframework
1unicorn2
Notification entities in EF Core 1.1
EF Core 1.1 Notification entities