Задать вопрос
  • Как синглтон превратить в DI в Yii2?

    Decadal
    @Decadal
    А зачем вам делать его DI, сделайте его компонентом. Extends Component, а в конфигурации components=> [
    'api'=> [ 'class' => 'namespace\вашего\клаccа']
    ]
    Обращаться к нему так: Yii::$app->api.
    Если что-то не понятно, спросите в комментарии, напишу развернуто.
    Ответ написан
    Комментировать
  • Как синглтон превратить в DI в Yii2?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    дополню ответ Decadal

    вам тогда жужно его сделать как component

    class BaseApiClient extend yii\base\Component {
          public $url;
          public $key
     }
    если base класс не нужен лучше убрать если у вас нету фабрики клиентов, ну если еще таковой функционал нужен, то нужно будет сделать интерфейс.
    class ApiClient extend BaseApiClient {
    }


    в конфиге config/web.php
    в  секцию массива добавить components=> [
    'api'=> [
     'class' => 'namespace\вашего\клаccа',
     'url' => '',
     'key' => '',
    ]
    ]


    PS все объекты наследуемые от BaseObject или Component содержат функционал DI контейнер через конструктор
    Ответ написан
    1 комментарий
  • Почему при сортиртировке именованная функция быстрее чем анонимная?

    empr
    @empr
    Дело в том, что вы в каждой из 100 000 итераций объявляете эту функцию. Если вы присвоите анонимную функцию переменной за пределами цикла (да, при этом функция по-прежнему будет считаться анонимной), то скорость сравняется.

    $cmp = function ($a, $b) {
        if ($a == $b) {
            return 0;
        }
        return ($a < $b) ? -1 : 1;
    };
    
    for ($i = 0; $i < $count; $i++) {
        usort($arr, $cmp);
    }

    Time: 0.074096918106079
    Time: 0.074237108230591
    Ответ написан
    8 комментариев
  • Этично ли при работе над проектом избавляться от посредников?

    Я охреневаю. Все такие крутые бизнесмены, судя по комментариям, только денежные отношения и похрену этика.
    Этика бизнеса - это не сферический конь в вакууме, это набор устоявшихся, неписаных правил, взаимодействия участников процесс. Сюда -же относятся и понятия репутации, имени фирмы, истории марки, и т.д., т.е. большая часть нематериальных активов, которые имеют вполне реальную финансовую оценку.
    Кидать посредников - плохо. Это удар по Вашей репутации, в перспективе потеря какого то кол-ва заказов, и принятие на себя не свойственных Вам функций.
    Да, Вы срубили сейчас чуть больше бабла, но потом этот посредник к Вам с заказом больше никогда не придет. Еще 5-10 таких заходов и Вы получите определенную репутацию хоть и в узких кругах.

    Посредников, конечно, надо давить, торговаться, ограничивать в их хотелках, и договариваться. Ничего не поделаешь - это коммерция. Но кидать, на мой взгляд, себе дороже.
    Ответ написан
    5 комментариев
  • Почему фрилансеры готовы общаться только в чате?

    Потому что не существует вещей, которые голосом объяснить было бы быстрее и проще. Гундеть в чате 30 минут или написать большой структурированный месседж за 5 минут, в котором будет все необходимое - что проще и быстрее? Разработчик прочитает, обдумает (и его никто не будет переспрашивать "ну что, как сделаем-то?", "чего молчим?") и напишет такой же структурированный ответ, с уточнениями по каждому неясному пункту.

    Видеопрезентации в 95% случаев заканчиваются тыканьем курсора в какую-либо область сайта и вещанием за кадром "ну вот тут видите, вот это вот нужно вот так переделать". Разработчики не тупые, и понимают задачу (при грамотной ее постановке) еще до созвона.

    Далее, если обсуждаются технические вопросы, в переписке все видно. Потерял нить? Перечитал, вспомнил. Начался бред со стороны заказчика, хотя час назад он хотел совсем иного? Процитировал, разрулили вопрос. В звонке подобное решается гораздо труднее и дольше, легко забыть незначительные мелочи, потому что ты концентрируешься на конкретной минуте разговора и информации, поступающей в текущий момент.

    Я никогда не видел человека, общение с которым голосом действительно было бы лучше, быстрее и качественнее. Так что если есть выбор, заказчик с общением по скайпу и заказчик с общением посредством переписки - при прочих равных я выберу последнего. На подобный вынос мозга я могу согласиться только если мне очень будет нужен этот заказ, либо если оплата будет компенсировать подобные энергозатраты.

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

    Исключение - вступительная беседа минут на 5-10, без объяснения технических деталей, просто для знакомства, ну и, если имеем дело с командой, мит-апы, конференции, где действительно формат с несколькими участниками порой требует видео и звука.
    Ответ написан
    Комментировать
  • Как редактировать вручную такую дату в БД?

    @zapimir
    Используйте HeidiSQL (можно подключаться удаленно) там есть опция "Это столбец Unix timestamp" (нажать правой на каком-нибудь значении из столбца с Unix timestamp). В итоге будут показываться данные в человекопонятном виде, и редактировать её можно в таком же виде, а HeidiSQL уже сам конвертацией займется.
    Ответ написан
    1 комментарий
  • Обфускация клиентского JS, как раскодировать?

    @extensionsapp Автор вопроса
    В общем решил вопрос. Обфускация клиентского JS совершенно бесполезная затея для разработчиков, только тратить ресурсы браузера пользователя что зря.

    Решается элементарно, в коде где после раскодировки идет выполнение кода eval(i), заменяем на вывод в консоль console.log(i), копирует оттуда и вставляем код в файл вместо обфусцированного.
    Ответ написан
    4 комментария
  • Как лучше всего организовать рассылку писем объемом до 100.000 в месяц?

    @xtreme
    Снимаю порчу по SSH :)
    Базовые очевидные вещи - SPF/DKIM/DMARC - это само собой разумеющееся. Мануалов - вагон. Сам где-то с полгода назад здесь же на тостере писал элементарные вещи для настройки почтового релея.
    100.000 в месяц - это примерно 3500 писем в день. Не сильно большая цифра.
    Думаю, сначала стоит понять, надо ли отсылать столько и что это будет.
    Если это рекламная рассылка с некоего сайта по базе мыл - если эти люди никогда не были на этом сайте - вся рассылка автоматически влетит в спам и дальше можно не читать.
    Если это рассылка реальным посетителям некоего сервиса - крайне желательно, чтобы рассылка шла с адреса, домен которого совпадает с доменом сервиса.
    Далее - если мы просто настроим сервер на отправку и начнем валить по 10000 и больше писем в день - ничего хорошего не выйдет. У популярных почтовых сервисов тоже есть системы, которые ведут базу серверов и если вдруг появляется какой-то новый сервер, который рассылает сразу кучу писем - этот сервер, как минимум, попадает в подозрительные. Если же начать с малого количества, каждые несколько дней наращивая количество - сервер заработает себе репутацию, что избавит от проблем с отправкой. Опять же - без спама и непрошеной почты, иначе все труды пойдут лесом.

    В письмах обязательно заголовок List-Unsubscribe с урлом для отписки от рассылки (популярные почтовики по нему рисуют кнопку отписки), помимо этого обязательно продублировать данную ссылку в тексте письма на видном месте с объяснением, что при клике на эту ссылку пользователь откажется от рассылки. Урл должен работать (отдавать корректный ответ HTTP 200), не должен заставлять пользователя куда-то логиниться и совершать дополнительных действий. Алгоритм четкий - пользователь кликнул на линк - открылся браузер, в нем страница с оповещением, что пользователь "такой-то" отписан от рассылки. И главное - после отписки - никаких рассылок этому пользователю, иначе подпортите репутацию у почтовиков.

    Если подходить серьезно - вам придется изучить особенности каждого популярного почтового сервиса. Завести на каждом из них аккаунт постмастера, чтобы отслеживать качество рассылок и вовремя принимать меры по улучшению. Например, mail.ru - очень любят, когда настроен DMARC и есть почта для отсылки отчетов постмастеру (FBL). Вам же придется после каждого цикла рассылки выгребать из этого ящика отчеты о недоставке и спам-репорты и оперативно исключать упоминаемые там адреса из списка рассылки (уменьшите у себя список, плюс, покажете почтовому сервису, что следите за своей рассылкой).
    Яндекс.почта - на удивление, вполне лояльна к любой почте, принимая все подряд, но безжалостно запихивает рассылку в папку спам при малейшем подозрении на неправильность. Крайне адекватный сервис постмастера, на котором можно посмотреть много важных параметров рассылки - где находятся письма у пользователей, как они туда попали, насколько интересны письма пользователям (процент просмотра письма) и т.д. Крайне полезный инструмент. Там же можно увидеть список пользователей, которые жмакнули "Спам" у себя в ящиках.
    Google - про существование сервиса постмастера у Гугла я сам только недавно узнал, но ничего особо интересного там не увидел.

    Насчет тайм-аутов - я лично использую дефолтные таймауты exim. При нормально раскачанном сервере их вполне хватает. Для примера сейчас "рабочая лошадка", рассылающая уведомления пользователям, за сутки разослала 93000 писем - от 1500 до 8000 писем в час.
    Ответ написан
    Комментировать
  • Актуальная информация по GeekBrains?

    bingo347
    @bingo347 Куратор тега HTML
    Crazy on performance...
    Не так давно получал предложение по работе от них типа "ищем крутых программистов для проведения обучающих вебинаров"
    Ок, позвонил, отвечает девушка, общаемся, некоторые выдержки:
    Я: У меня высшее образование по специальности "преподавание информатики" и 2 года пед стажа, работал в колледже по специальности
    Д: Главное, чтоб Вы были действительно крутым программистом!
    Я: как Вы поймете, что я действительно крутой программист?
    Девушка: это покажет тестовое задание

    Я: Для проведения вебинара понадобится какое-либо специализированное ПО?
    Д: да, у нас есть собственное ПО, мы Вам вышлем инстолятор и инструкции в случае если Вы будете работать у нас
    Я: Я сижу под линуксом, Ваше ПО запускается на линукс нативно?
    Д: Что такое линукс?

    Ладно, девушка просто HR, не будем придираться, на крайняк запустим под вайном их крутое ПО...

    Получаю тестовое задание:
    "Запишите ролик, где Вы рассказываете о своем ЯП и покажите примеры циклов на нем для новичков"
    Сомнения увеличиваются, как это может показать мою "крутость" как программиста?
    Ну ок, записать видео с экрана не проблема, лезу в ютуб за примерами и нахожу их канал, среди роликов нахожу запись вступительного вебинара, ролик выложен весной 2014 по node.js - смотрю, парнишка рассказывает народу какая крутая нода по сравнению с php, python и ruby, отвечает на вопросы, притом пропуская некоторые, которые посчитал неуместными, но убила фраза "я программирую на ноде более 5 лет", напомню что ролик выложен весной 2014, следовательно снимался еще раньше, а нода появилась летом 2009... у парня проблемы с математикой когда он врет...
    Вообщем потратил свои 2 часа и просмотрел вебинар полностью, все сводилось к тому, что нода реально крутая и жизненно вам необходима, только купите наш мега крутой курс
    И я решил, что не смогу так парить мозги людям, ради выкачивания из них денег, и работать у них не хочу, а освоится новичкам я и на тостере помогу...
    Ответ написан
    1 комментарий
  • Почему php цикл убивает сайт на WordPress?

    Перед } нет открывающего <?php
    Ответ написан
    Комментировать
  • Где можно посмотреть фриланс рассказы?

    aRegius
    @aRegius
    Python Enthusiast
    Я не могу отнести себя к той категории людей, которые искали, сортировали и знают множество подобных ресурсов на любой вкус.

    Однако интерес к подобным реальным историям реальных людей (жизнь и работа программистов за рубежом) в свое время заставил меня уделить какое-то время поиску подходящих мне соответствующих ресурсов.

    На сегодняшний день есть лишь один, за которым я слежу постоянно. Вот он.

    Чем меня привлек:
    1. Грамотная (с точки зрения русского языка), подробная, интересная подача материала.
    2. Большое количество качественных, интересных, тематически уместных фотографий.
    3. Интересные темы.
    4. Удобный дизайн в контексте легкости чтения и восприятия информации (никаких мигающих баннеров, всплывающих реклам и прочей мути...).
    5. Хороший мотиватор (имею ввиду сам ресурс).

    Естественно, это мое субъективное мнение. Но я далеко не уникум, поэтому и делюсь, будучи уверенным, что кому-то также окажется полезным.
    Ответ написан
    2 комментария
  • Какова значимость диплома в бизнесе по СНГ (IT индустрия)?

    kumaxim
    @kumaxim
    Web-программист
    Фишка ВУЗа не в том, чтобы научить Вас использовать какой-то язык/библиотеку/фреймворк.
    Я когда сам был на 1-2 курсах, задавался сильно вопросом: "А для чего мне этот С++? Сейчас для веба PHP & CodeIgniner используют очень широко, заказов на фриланс-биржах на этот стек много, в описаниях вакансий часто эти ключи встречаются. Вот зачем спрашивается мне этот Ваш С++ с его управлением памятью и прочими ненужными вещами..." Но минуло 4 года, я получил диплом. К этому времени CI уже сдулся, активно все стали использовать альтернативные языки - Python, Ruby. Фреймворки для PHP тоже поменялись - Yii, Laravel...

    Это я все к чему... Универ должен заложить в Вас основу, базу, которая не устареет через 3-4-5 лет к тому моменту, когда Вы получите диплом. А что является этим фундаментом? Скажем интерпритаторы PHP, Ruby, Python написаны C, и зная С/С++ можно очень легко выучить любой вышестоящий язык, синтаксис по большому счету там везде один и тот же. Зная как работает интерпритатор в приницпе, можно написать свой язык программирования. И если язык может часто и не нужен, то вот парсеры с чего-нибудь куда-нибудь мне приходится писать очень часто, а любой парсер имеет упрощенную грамматику языка программирования. Вы думайте необходимость в парсерах скоро вымрет? Что т мне так не кажется...

    Сейчас очень популярна стала тема нейронных сетей, искуственного интелекта, машинного обучения... А что лежит в самой основе этого? Да банальная теория графов. Любая нейронная сеть и ИИ это по большому счету граф, да, со сложной структурой, да, порой в нем может начать творитья просто магия, но тем не менее эта структура и базовые операции с ней были предложены и изучены еще в середине прошлого века. Когда устареет теория графов? Графов вокруг нас больше чем Вы думайте - маршрут движения общественного транспорта, хотя бы например. "Как добраться из пункта А в пунт Б" - типичная задача комивояжера. Когда это уйдет? Думаю только с изобретением устройства для телепортации, и то не факт что полностью.

    ВУЗ преде всего должен заложить в тебя базу, а на заочном/вечернем отделениях ты получаешь не знания, которые составляют вот этот твой фундамент, а кусок бумаги, необходимость которого сомнительна в текущих реалиях на постсоветском пространстве.

    Говоря о том, что "актуальные сейчас для бизнеса технологии вообще не изучаются, ВУЗ дает устаревшие знания и т.д.", я могу сказать только одно - для бизнеса всегда будет актуально только одно - решение его операционных задач с минимально возможными ресурсами. А вот какие именно инструменты помогают оптимизировать операционную деятельность компании - Java, Python или что-то еще в диапазоне 2-3 лет может сильно варьироваться. Новый язык/фреймворк реально выучить и начать решать на нем задачи за 2-6 недель, если Вы не дурак конечно. Какой именно язык/фреймворк это будет - нужно смотреть задачи компании и имеющиеся на рынке инструменты для решения онных и их изучанием уже и заманиматься.
    Ответ написан
    1 комментарий
  • Обновление даты активности элемента?

    Вообще все есть в гугл, похоже вы не пробовали погуглить
    <a class="update" data-id='<?=$arItem['ID']?>' href="">Ссылка примерного вида</a>


    $(".update").click(function(event) {
    	var id = $(this).attr('data-id');
    	$.ajax({
    		url: '/path/to/file',
    		type: 'post',
    		data: {id: id},
    	})
    	.done(function() {
    		console.log("success");
    	})
    	.fail(function() {
    		console.log("error");
    	})
    	.always(function() {
    		console.log("complete");
    	});
    	
    });


    <?
    include($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
    if(\Bitrix\Main\Loader::includeModule('iblock')) {
    $newEl = new CIBlockElement;
    $elProps = array(
    "MODIFIED_BY" => $USER->GetID(), 
    "IBLOCK_ID" => 3,
    "ACTIVE_FROM" => ConvertTimeStamp(time(), "FULL"),
    "ACTIVE" => "Y",
    );
    $res = $newEl->Update($_REQUEST["id"], $elProps);
    }


    Примерно так, работает или нет не проверял
    Ответ написан
    Комментировать
  • Как определить хорошего сеошника?

    Хорошие сеошники продвигают свои или чужие торренты и крупные медиа, возится с мелкими коммерческими сайтами им неинтересно.
    Хороший спец:
    1. Не берёт клиента если не видит способов продвижения (т.е. он скажет вот эти двое мне интересны, а эти пусть лесом идут)
    2. Играет в долгую, полгода минимум.
    3. Его действия для вас совершенно неочевидны, например он может предложить создать второй сайт или каталог конкурентов.
    4. Он говорит что descroption и keywords это полня фигня, хотя вокрут все только про них и твердят.
    5. Требует создать внутри компании редакцию, либо человека ответственного за тексты, либо выделить довольно много денег на тексты фриласерам. Если этого не происходит уходит из проекта.
    6. Имеет свои базы ключевых слов (платные)
    7. Имеет свои базы хороший сайтов для размещения статей, обмена ссылками
    8. Имеет технологии быстрой оценки качества любых новых доноров.
    9. Знает что такое bit.ly и UTM-метки
    10. Не брать сеошником человека, который говорит "Я не сеошник"
    Ответ написан
    14 комментариев
  • Длинные запросы MySQL, (CentOS, nginx, 1C-Bitrix)?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    База данных препятствует добавлению новых данных на период снятия бекапа для того, чтобы Ваш бекап был консистентен по всем таблицам. Это стандартное поведение.

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

    Если Вы хотите делать бекап без блокировки таблиц, но Вам важна консистентность данных, Вы можете:
    1. Настроить репликацию MASTER-SLAVE и снимать резервные копии со SLAVE. С ним можно будет сколько угодно блокировать таблицы бекапами, поскольку SLAVE-сервер не будет использоваться сайтом. Все новые данные с MASTER доедут на него после завершения бекапа.
    2. Если таблицы в InnoDB, то можно освоить XtraBackup, делающий резервную копию прямо на ходу.


    Если Вы хотите делать бекап без блокировки таблиц, но Вам не нужна консистентность данных:
    Для MyISAM:
    mysqldump --lock-tables=false ...
    Для InnoDB:
    mysqldump --single-transaction ...
    Ответ написан
    Комментировать
  • Какую литературу читать новичку по C#?

    Литература по языку C#

    Книги для новичков: а о чём это вообще?

    • Head First C#, Jennifer Greene, Andrew Stellman (русский перевод: Изучаем C#, Д. Грин, Э. Стиллмен). Содержит упражнения. Рекомендуется многими как хорошая книга для новичков.
    • Язык программирования C# 5.0 и платформа .NET 4.5 - Эндрю Троелсен. Популярная книга, многие начинали с неё.
    • C# 4.0: полное руководство, Герберт Шилдт. Несмотря на неоднозначное отношение к автору, книга пользуется популярностью.
    • C# 2010. Ускоренный курс для профессионалов, Нэш Трей
    Книги среднего уровня: если hello world не проблема
    • CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#, Джеффри Рихтер. Неувядающая классика. Хотите знать, что и как происходит на самом деле? Это книжка для вас. Не самое живое изложение, зато максимум подробностей из первых рук.
    • C# 6.0 in a Nutshell, Joseph Albahari, Ben Albahari (русский перевод предыдущей версии:C# 5.0. Справочник. Полное описание языка, Джозеф Албахари, Бен Албахари). Отличная книга, затрагивает многие аспекты, расставляет по местам ваши знания о предмете. Сводит разрозненные отрывочные знания в общую понятную картину, объясняет, какими средствами нужно пользоваться, а для чего есть уже более хорошие подходы. Есть online-глава о многопоточности (русский частичный перевод), почитайте!
    • Essential C# 5.0, Mark Michaelis в сооавторстве с Эриком Липпертом. Хорошая книга для программистов, желающих овладеть C#. Знания других языков, перед чтением, приветствуются. От Эрика Липперта в книге представлены продвинутые советы, которые встречаются на протяжении всей книги.
    • Effective C# и More Effective C#, Bill Wagner. О том, как надо и как не надо программировать на C#. Разбираются отдельные аспекты программирования, способствует углублению понимания языка.
    • Programming C# 5.0: Building Windows 8, Web, and Desktop Applications for the .NET 4.5 Framework, Ian Griffiths. (Русского перевода пока нет.) Очень детальная, подробная книга, в которой найдутся ответы на продвинутые вопросы.

    Книги для специалистов: внутренние механизмы и пыльные углы

    • C# in Depth, Jon Skeet, Third Edition (русский перевод: C#. Программирование для профессионалов, Джон Скит, пока переведено лишь второе издание). Имя автораговорит само за себя. Джон один из лучших людей, которые умеют доходчиво объяснять сложные вещи.
    • C# 5 Unleashed, Барт де Смет. Фундаментальная книга.
    • Debugging Microsoft .NET 2.0 Applications, John Robbins (русский перевод: Отладка приложений для Microsoft .NET, Джон Роббинс). Основы промышленной отладки: WinDbg/SOS, дампы памяти и решение проблем в приложениях (почти) без Visual Studio.
    • Under the Hood of .NET Memory Management, Chris Farrell, Nick Harrison. Полное описание всех тонкостей управления памятью в платформе .NET. Книга доступнабесплатно на английском.
    • Expert .NET 2.0 IL Assembler, Serge Lidin. В книге представлены ответы почти на все тонкости низкоуровневого программирования на .NET, а именно на языке IL. В книге описаны детали .NET Framework 2.0, по этому на данный момент какие то аспекты могут быть не актуальны.
    • Оптимизация приложений на платформе .NET с использованием языка C#, Саша Голдштейн, Дима Зурбалев, Идо Флатов (Переводчик: Александр Киселев). В книге рассматривается моменты .NET с точки зрения производительности. Рассказывается об способах замеров и шаблонах оптимизации. Также там рассматриваются вопросы, связанные с GC и небезопасным кодом.

    Дополнительные ресурсы:

    • Официальная спецификация C# 5
    • Framework Design Guidelines. Руководства и соглашения по проектированию многократно используемого кода. Является выдержкой из одноимённой книги, Krzysztof Cwalina, Brad Abrams. Книга переведена на русский под названием Инфраструктура программных проектов, Кржиштоф Цвалина, Брэд Абрамс.

    Литература по асинхронному программированию и многопоточности

    • Concurrent Programming on Windows, Joe Duffy. Профессиональное использование многопоточности в инфраструктуре .NET от одного из лучших мировых специалистов по многопоточности. В книги описаны тонкости использования как stream'oв так и thread'ов. Раскрыто, как и когда использовать Concurrent-, Parallel- и Asynchronous-модели. Примеры в книге присутствуют от достаточно низкоуровневых (с использованием системных потоков через WinAPI) до высокоуровневых Task'ов и PLINQ. Книга написана под .NET Framework 4.0, поэтому работа с ключевыми словами async/await в книгу не вошла.
    • Concurrency in C# Cookbook, Stephen Cleary. (Русского перевода пока нет.) Очень толковое разъяснение современных паттернов использования многопоточности, особое внимание уделено использованию конструкции async/await. Обсуждается решение типичных проблем, решаемых асинхронным кодом. Отдельно описывается работа с Reactive Extensions и TPL Dataflow.

    Литература по WPF
    • Pro WPF 4.5 in C#: Windows Presentation Foundation in .NET 4.5, Matthew MacDonald (русский перевод: WPF: Windows Presentation Foundation в .NET 4.5 с примерами на C# 5.0 для профессионалов, Мэтью Макдональд). Разбор XAML'а, лаконичные, но полезные примеры. Пристальное, но не навязчивое внимание к деталям.
    • Windows Presentation Foundation Unleashed, Adam Nathan. Наверное, лучшая книга для новичка.
    • Applications = Code + Markup: A Guide to the Microsoft Windows Presentation Foundation, Чарльз Петцольд. Фундаментальная книга великолепного специалиста. Написана довольно тяжело, много листингов, плотный поток информации

    Литература по ASP.NET
    • Pro ASP.NET MVC 5, Adam Freeman (русский перевод: ASP.NET MVC 5 с примерами на C# 5.0 для профессионалов, Адам Фримен). Поэтапное написание веб-приложения с рассмотрением большинства важных аспектов разработки приложения: паттерн MVC, юнит-тестирование, инверсия зависимостей и т. п.
    • Pro ASP.NET 4.5 in C#, Adam Freeman (русский перевод: ASP.NET 4.5 с примерами на C# 5.0 для профессионалов, Адам Фримен).
    • Professional ASP.NET MVC 5, Jon Galloway, Phil Haack, Brad Wilson, K. Scott Allen
    • Programming ASP.NET MVC 4: Developing Real-World Web Applications with ASP.NET MVC, Jess Chadwick, Todd Snyder, Hrusikesh Panda (русский перевод: ASP.NET MVC 4. Разработка реальных веб-приложений с помощью ASP.NET MVC, Джесс Чедвик, Хришикеш Панда, Тодд Снайдер).
    • ASP.NET MVC Framework, Гайдар Магдануров, Владимир Юнев
    • Pro ASP.NET MVC 2 Framework, Steven Sanderson (русский перевод: ASP.NET MVC Framework с примерами на C# для профессионалов, Стивен Сандерсон)
    Дополнительные ресурсы:
    • Get Started with ASP.NET от Microsoft
    • Видеокурсы на intuit.ru: Разработка веб-приложений на ASP.NET, Разработка веб-приложений с использованием ASP.NET MVC Framework.

    Литература по LINQ
    • Pro LINQ: Language Integrated Query in C# 2010, Joseph Rattz, Adam Freeman (русский перевод: LINQ. Язык интегрированных запросов в C# 2010 для профессионалов, Адам Фримен, Джозеф С. Раттц). Учебно-справочное пособие, в котором понятно и подробно описаны возможности языка LINQ. Хороша для старта.
    • LINQ Pocket Reference, Joseph Albahari, Ben Albahari (русский перевод: LINQ. Карманный справочник, Джозеф Албахари, Бен Албахари). Хороший справочник по всему, что относится к LINQ. Рассмотрены новые конструкции C# для поддержки LINQ. Много примеров.
    • C# in Depth, Jon Skeet (русский перевод: C#. Программирование для профессионалов, Джон Скит). Немалая часть книги посвящена тому, как работает LINQ.

    Литература по принципам, шаблонам и методикам разработки
    • Внедрение зависимостей в .NET, Марк Симан. Несложно написанная книга про управление зависимостями в приложениях.
    • Принципы, паттерны и методики гибкой разработки на языке C#, Роберт С. Мартин, Мика Мартин

    Литература по Windows Workflow Foundation
    • Essential Windows Workflow Foundation, Dharma Shukla, Bob Schmidt (русский перевод:Основы Windows Workflow Foundation, Дхарма Шукла, Боб Шмидт). Для тех, кого заинтересовала 26 глава («Введение в Windows Workflow Foundation») из книги Эндрю Троелсена Язык программирования C# 5.0 и платформа .NET 4.5.
    • Pro WF 4.5, Bayer White (русской версии нет). Более углубленный взгляд на WF.

    Литература по XML
    • XML.NET, Джо Грей, Динар Дальви, Бипин Джоши, Фредрик Нормен, Фрэнсис Нортон, Энди Ольсен, Дж. Майкл Палермо IV, Даршан Сингх, Джон Слэйтер, Кевин Уильямс (Переводчик: И. Штерев). В книги содержится всё про применение XML в .NET за исключением LINQ. Старовата уже, но зато там есть объяснение, как внедрить свои функции на C# в XSLT.

    Литература по ADO.NET
    • Основы ADO.NET, Боб Бошемин (Переводчики: О.А. Лещинский, А.В. Журавлев, Н.Н. Селина)

    Литература по .NET Remoting / WCF
    • Microsoft .NET Remoting, Скотт Маклин, Джеймс Нафтел, Ким Уильямс
    • Создание служб WCF, Джувел Леве (Переводчики: Е. Матвеев, А. Пасечник)

    Литература по безопасности
    • Криптография и безопасность в технологии .NET, Питер Торстейнсон, Гнана Ганеш (Переводчик: В. Хорев). Книга дает представление .NET разработчику о реализации и применении криптографии, цифровой подписи, аутентификации, авторизации и доступа к коду (CAS). В ней описывается, что такое симметричное и асимметричное шифрование, что представляют собой цифровые подписи и как их использовать в .NET приложениях.
    • Microsoft ASP.NET. Обеспечение безопасности, Доминик Байер. Не смотря на то, что в названии указано ASP.NET в книге рассматриваются технологии безопасности под Windows, применимые из .NET для всех типов приложений. Это аутентификация, авторизация, олицетворение и Membership.
    Ответ написан
    5 комментариев
  • Как всё успевать и не быть роботом?

    Bandicoot
    @Bandicoot
    Вась-программист
    1. Тут проблемы нет, т.к. работаю в офисе на полную ставку. Отработал свои 8 часов и свободен.

    3. Решил проблему траты времени на приготовление еды радикальным образом - практически себе не готовлю, живя один. И при этом также не посещаю кафе. Схема питания: утром завтрак из овсяной каши быстрого приготовления, в офис на обед беру молочные концентраты - творог, сыр итд. Это совершенно безвредно. На ужин ем клетчатку (овощи, фрукты) или рыбные консервы с гречкой. Питаюсь так уже несколько недель, полет нормальный. Как по мне, всё вполне сбалансировано.

    4. Спортом не занимаюсь, но вместо этого каждый день делаю гимнастику. Много времени не отнимает, а бодрячка придает.

    5. Проблема самообразования тоже решается очень просто - ставишь себе задачи и начинаешь их выполнять. Какая информация понадобится при этом, с той и работаешь. Лишний информационный шум отсекаешь. Собираешь информацию только в контексте решаемых задач
    Ответ написан
    Комментировать
  • В чем ошибка Setting read-only property: yii\web\Application::response?

    DevMan
    @DevMan
    Yii::$app->response =
    и
    Yii::$app->response->format =
    кагбе не одно и тоже.
    а ошибка говорит сама за себя.
    Ответ написан
    2 комментария
  • Какие практические задачи может решать верстальщик на Angular?

    @MNB
    Todo
    Принято начинать с него :)
    Ответ написан
    Комментировать
  • Использование $$ в PHP?

    @strelov1
    Да причем тут битрикс, это классический способ использования именованных переменных
    $array = ['title'=>'TITLE','slug'=>'URL','contet'=>'CONTENT.....'];
    
    foreach ($array as $key => $value) {
    	$$key = $value;
    }
    
    echo $title; // TITLE
    echo $slug; // URL
    echo $contet; // CONTENT.....
    Ответ написан
    1 комментарий