• [DotNetBook] Структура экземпляров типов и VMT

    • Tutorial
    С этой статьей я продолжаю публиковать целую серию статей, результатом которой будет книга по работе .NET CLR, и .NET в целом.

    Вся книга будет доступна на GitHub: CLR Book. Так что Issues и Pull Requests приветствуются :)

    Это — выжимка из главы про структуру типов и их VMT.

    Структура объектов в памяти


    До сих, говоря про разницу между значимыми и ссылочными типами, мы затрагивали эту тему с высоты конечного разработчика. Т.е. мы не смотрели на то как они в реальности устроены на уровне CLR, как сделаны те или иные механики внутри каждого из них. Мы смотрели фактически на конечный результат. Однако, чтобы понимать суть вещей глубже и чтобы отбросить в сторону последние оставшиеся мысли о какой-либо магии, происходящей внутри CLR стоит заглянуть в самые ее потроха.
    Читать дальше →
    • +33
    • 6,7k
    • 3
  • [DotNetBook] Особенности выбора class/struct. Свой boxing, превращение Int в структуру, пул боксинга

    • Tutorial
    С этой статьей я продолжаю публиковать целую серию статей, результатом которой будет книга по работе .NET CLR, и .NET в целом. Тема IDisposable была выбрана в качестве разгона, пробы пера. Теперь коснемся разницы между типами. Вся книга будет доступна на GitHub: DotNetBook. Так что Issues и Pull Requests приветствуются :)

    Это — выжимка из главы про Struct / Class и их разницу.

    Особенности выбора между class/struct


    Давайте подумаем об особенностях обоих типов, об их достоинствах и недостатках и решим, где ими лучше пользоваться. Тут, конечно же стоит вспомнить классиков, дающих утверждение что выбор в сторону значимых типов, стоит дать если у нас тип не планирует быть наследуемым, он не станет меняться в течении своей жизни, а его размер не превышает 16 байт. Но не все так очевидно. Чтобы сделать полноценное сравнение нам необходимо задуматься о выборе типа с разных сторон, мысленно продумав сценарии его будущего использования
    Читать дальше →
  • [DotNetBook] IDisposable: самое полное описание

    • Tutorial
    С этой статьей я начинаю публиковать целую серию статей, результатом которой будет книга по работе .NET CLR, и .NET в целом. Тема IDisposable была выбрана в качестве разгона, пробы пера. Вся книга будет доступна на GitHub: DotNetBook. Так что Issues и Pull Requests приветствуются :)

    **UPD: статья доработана и многие комментарии уже не актуальны**. Следить за исправлениями можно тут: GitHub: Disposed Pattern: 4 opened

    Disposing (Disposable Design Principle)



    Сейчас, наверное, практически любой программист, который разрабатывает на платформе .NET, скажет, что ничего проще этого паттерна нет. Что это известный из известнейших шаблонов, которые применяются на платформе. Однако даже в самой простой и известнейшей проблемной области всегда найдется второе дно, а за ним еще ряд скрытых кармашков, в которые вы никогда не заглядывали. Однако, как для тех, кто смотрит тему впервые, так и для всех прочих (просто для того, чтобы каждый из вас вспомнил основы (не пропускайте эти абзацы (я слежу!))) — опишем все от самого начала и до самого конца.

    IDisposable



    Если спросить, что такое IDisposable, вы наверняка ответите что это

    public interface IDisposable 
    {
    	void Dispose();
    } 
    


    Для чего же создан интерфейс? Ведь если у нас есть умный Garbage Collector, который за нас чистит всю память, делает так, чтобы мы вообще не задумывались о том, как чистить память, то становится не совсем понятно, зачем ее вообще чистить. Однако есть нюансы.
    Читать дальше →
  • Что мы ненавидим в собеседованиях?



      Все мы ходили по собеседованиям, разговаривали с представителями компаний и постоянно встречаемся с особенностями, которые рекрутеры либо культивируют, обучая друг друга, либо не обращают внимания, но при этом выглядят отталкивающими — со стороны человека, пришедшего в компанию. В моей 10-летней карьере я сменил порядка 10 компаний (в последней — Luxoft — уже 3 года, так что практику перебежчика закончил). И за это время провел как около 100 собеседований на стороне соискателя, так и порядка 150 — на стороне собеседующего, что дало мне возможность собрать Топ5 ошибок рекрутеров, которые могут так испортить собеседование, что я больше не захочу идти в компанию.
      Читать дальше →
    • Logeek Night в Воронеже



        Приглашаем вас посидеть с нами в баре PITNICA одной большой компанией. Давайте договоримся: мы вам — пиво, закуски и две отличные темы «на поговорить», а вы нам — компанию и вопросы :). Итак, наше мероприятие, которое начнется послезавтра в Воронеже, в баре PITNICA. Как и всегда, Logeek Night пройдет вечером, с 19:00 до 21:30 в формате двух выступлений и беседы как о выступлениях, так и на смежные темы.

        За подробной информацией и ссылками на страницы регистрации просьба пройти под кат
        Читать дальше →
      • Logeek Night в Воронеже



          Всем короткой пятницы, хабравчане! Спешим анонсировать наше мероприятие, которое начнется через неделю в Воронеже, в баре PITNICA. Как и всегда, Logeek Night пройдет вечером, с 19:00 до 21:30 в формате двух выступлений и беседы как о выступлениях, так и на смежные темы.
          Читать дальше →
        • QA: Conference. Сибирь



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

            • Галина Галкина — Расчет категории риска – подход к управлению регрессионной ТМ
            • Дарья Ефремова — FMEA — подход к тестированию с ретроспективой
            • Станислав Сидристый — Грамотное использование Groovy/Geb при автоматизации тестирования Web-приложений на Java
            • Константин Нерадовский — Функциональный подход в разработке автотестов на Java
            • Роман Иовлев — Jedi Power of Model-based testing
            • Роман Иовлев — JDI — Future of UI Automation
            • Алексей Белёв и Михаил Мациевский — Автоматизация тестирования или как мы с нуля всё поднимали
            • Александр Шиповалов — Чем пахнут ваши авто-тесты
            • Александр Шиповалов — BDD — Золотая книжечка, столь же полезная, сколь и забавная..
            • Леншмидт Анастасия и Орлов Артур — Автотесты: QA vs Dev

            Покупая билет, вы получаете:
            • Возможность получить запись докладов с Москвы и Питера
            • Возможность попасть на QA: Conference Новосибирск
            • Питание во время конференции

            Хотите подсмотреть что было в Москве и Питере? Добро пожаловать в наши фотоальбомы:

            Читать дальше →
            • +11
            • 4,6k
            • 3
          • Паттерны и антипаттерны Cucumber BDD

            • Tutorial
            Потратив множество человеко-часов над разработкой автотестов для нескольких огромных проектов, я с полной уверенностью могу сообщить, что составил может быть далеко не полный, но уж точно достаточно крупный набор практик, с которыми хочется поделиться с каждым. Итак, следуя стопам классиков, хочу (надеюсь увидеть дополнения от вас в комментариях) составить:

            Шаблоны проектирования Cucumber BDD сценариев


            Цели:

            • получить готовый инструмент, при помощи которого станет возможным стандартизировать процессы разработки и контроля качества исполняемых сценариев, построенных для работы в Cucumber-based технологических стеках (cucubmer jvm, SpecFlow и проч.)
            • получить набор правил, позволяющих специалистам с разных проектов легко мигрировать между проектами без длительной фазы привыкания
            • получить чистый, легко-читаемый код сценариев, который легко расширяется и слабо подвержен полным переписываниям текстов сценариев при минимальных изменениях UI

            Итак, поехали!
            Читать дальше →
            • +10
            • 12,9k
            • 7
          • QA: Conference. Сертификаты и репортажная лента в трансляции



              Мы в прошлом посту анонсировали онлайн билеты для нашей конференции QA: Conference. Сейчас я хотел бы немного раскрыть карты касательно онлайн формата. Если посмотреть на страницу трансляции, то станет видно что на ней три зоны: Сам поток (можно выбирать среди 3 залов), комментарии — снизу и справа — репортажная лента. Также мы вводим сертификаты посещения мероприятия. Для чего все это?

              Репортажная лента


              Прямо во время конференции помимо видео операторов и фотографов будут проводить репортаж несколько профессиональных тестировщиков. Так обычно делают Microsoft и Apple во время своих мероприятий. Один из них — это один из ведущих на Radio QA Алексей Виноградов, который провел уже более 20 выпусков своего подкаста и готов вести репортаж прямо с конференции. Для вас это означает что ведущие будут комментировать как само событие, так и доклады (причем в разных залах, давая возможность вам переключаться на те доклады, которые вам больше нравятся), освещая основные идеи из них.

              Репортажная лета помимо того что дает понимание что происходит на конференции, позволяет подключаться к докладам в тот момент, который вам удобен. Увидели что ведущий написал что-то интересное? А на текущем докладе пока идет вводная? Переключились, посмотрели, переключились обратно. Боитесь что надо отойти и пропустите самое интересное? трансляцию можно поставить на паузу. Вкупе с репортажной лентой на мой взгляд это становится очень удобным инструментом

              Что касается комментариев, то тут все предельно ясно: это возможность задать вопросы, пообщаться с коллегами и обсудить доклад.

              Сертификаты посещения


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

              Не забываем что у нас есть классный сайт: QA: Conference
              Читать дальше →
            • CLRium #3: Семинар по технологиям .NET



                Всем привет! Семинары уже совсем близко и мы рады принять на борт еще одного прекрасного докладчика: Михаила Щербакова
                А для тех, кто не в курсе, повторюсь: 15 апреля в Санкт-Петербурге, 22 апреля — в Москве, 29 апреля — в Омске, 13 мая — в Екатеринбурге и 20 мая — в Новосибирске пройдет серия семинаров CLRium #3.

                В прошлом году мы говорили об околохакерских штуках — разборе памяти .NET куч, приведение типов, между которыми приведение невозможно… Делили текущий поток на два… Говорили о ядре нового .NET Core и пытались понять, для чего нам нужен (и нужен ли?) Roslyn

                В этом же году мы поговорим о другом. О сугубо практически полезных вещах, о которых вы ранее наверняка не знали, но в которых таится огромная сила и мощь. Об изменяемых языках программирования, производительности и кроссплатформенной разработке GUI. Что значит «об изменяемых»? Это значит, что язык умеет менять собственный синтаксис.

                Как и ранее, у нас будут:
                • Максимально глубокие, отборные доклады по редко-раскрываемым вопросам
                • Мы будем говорить только о том, о чем вы наверняка, до того не знали
                • Максимально-полезные доклады, которые усилят Вас как специалиста
                • Почти все доклады — от 1,5 часов. Что позволит докладчикам не экономить и рассказать все что они знают

                Примечание к Nitra и Nemerle: эти два opensource проекта нынче разрабатываются в стенах компании JetBrains.
                Доклады:
                • Михаил Щербаков (IntelliEgg) Какие уязвимости находят в .NET Framework
                • Андрей Акиньшин (JetBrains) Железные таймеры
                • Влад Чистяков (JetBrains) Nemerle — самая мощная альтернатива C# на .NET
                • Влад Чистяков (JetBrains) Nitra — средство разработки языков программирования и DSL
                • Станислав Сидристый (Luxoft) JetBrains Rider IDE: Java IDE для кросс-платформенного .NET
                • Станислав Сидристый (Luxoft) Автоматизация тестирования WPF/WinForms приложений через внедрение в процесс
                • Андрей Карпов (СиПроВер) Что знает статический анализатор, чего не знаете вы
                • Сергей Васильев (СиПроВер) Опыт использования 'Roslyn' при разработке статического анализатора кода
                • Никита Цуканов Кроссплатформенная разработка UI приложений (Perspex UI, Eto.Forms, Xamarin Forms)

                У нас есть отличный сайт, на котором можно почитать как про всех спикеров, так и про все доклады. Заходите, изучайте, берите билеты: http://clrium.ru/

                А под катом мы сделали для вас видеоприглашения =)
                Читать дальше →
                • +23
                • 5,8k
                • 7