Pull to refresh
4
0
Send message

Способы создания экземпляра наследника класса в зависимости от данных

Level of difficultyEasy
Reading time2 min
Views1.4K

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

В голову пришло три способа организации:

Читать далее
Total votes 6: ↑0 and ↓6-6
Comments9

Как стать C#-разработчиком бесплатно? Программа обучения с нуля

Level of difficultyEasy
Reading time2 min
Views23K

Если вбить слово «С# разработка» в поисковую строку, можно найти огромное количество курсов по данному направлению. Проблема в том, что все курсы являются платными и, как правило, имеют ценник в несколько десятков тысяч рублей.

Чтобы разбавить засилие платных курсов, мы подготовили для вас программу обучения «C#-разработчик с нуля», которая состоит только из бесплатных материалов.

Читать далее
Total votes 40: ↑25 and ↓15+11
Comments14

Книга: «Антипаттерны SQL. Как избежать ловушек при работе с базами данных»

Reading time10 min
Views17K
image Привет, Хаброжители!

Язык SQL необходим для работы со структурированными данными. Программисты, прекрасно знающие свой любимый язык (Java, Python или Go), не могут разбираться во всем, и часто не являются экспертами в SQL. Это приводит к появлению антипаттернов — решений, которые на первый взгляд кажутся правильными, но со временем создают все больше проблем.

Научитесь выявлять и обходить многие из этих распространенных ловушек! Проведите рефакторинг унаследованного кошмара и превратите его в жизнеспособную модель данных!

Примеры SQL-кода основаны на версии MySQL 8.0, но в тексте также упоминаются другие популярные РСУБД. В примерах кода используется Python 3.9+ или Ruby 2.7+.
Читать дальше →
Total votes 6: ↑6 and ↓0+11
Comments15

Инструмент для автоматической оценки конкурса при поступлении в ВУЗы РФ

Reading time7 min
Views12K

Каждый выпускник школы сталкивается с проблемой выбора профессии и, следовательно, ВУЗа. Этот этап жизни является наиболее сложным для школьника психологически: нужно подготовиться и сдать экзамены, от которых зависит, наберут ли они проходной балл в выбранное учебное заведение. Сам процесс поступления тоже является источником стресса: новая система подачи документов не гарантирует 100% зачисление даже с необходимыми баллами. До самого последнего момента абитуриент не знает, пройдёт он или нет на бюджет в выбранных ВУЗах и решение о подаче оригиналов документов приходится принимать на основании ограниченной информации и своих собственных предположениях о дальнейшем развитии ситуации. Получается, все выпускники последние 2 месяца лета не наслаждаются заслуженным отдыхом, а всей страной играют в покер со ставками на свое дальнейшее образование!

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

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments18

Typeser: 1С-like ERP-конструктор на базе TypeScript

Reading time6 min
Views6.5K

Хотелось бы представить на суд местного сообщества недавно созданную облачную веб платформу разработанную бывшим 1с-овцем освоившим java, js, ts, react.

Интерфейсы TypeScript(*.d.ts файлы) генерируются на лету. Они актуальны и доступны в коде даже без сохранения конфигурации.

Главная фишка - есть возможность писать обработчики событий на языке TypeScript и sql код на триггеры при записи объектов. Редактор кода тоже онлайн и реализован на базе monaco-editor. В нем типизируется все: структура и типы метаданных, данные и элементы формы, события обработчиков.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments39

Создание многопоточного сервера на C#

Level of difficultyEasy
Reading time10 min
Views35K

Данная статья предназначена для таких же новичков как и я. Вся информация в этой статье основывается на моем опыте создания одного единственного веб-сервера, который был создан в рамкам учебного проекта на 3 курсе по специальности 09.02.07 СПО.

Читать далее
Total votes 18: ↑4 and ↓14-10
Comments72

Пара баек про IT-безопасность

Reading time4 min
Views16K

Сейчас мои продукты, написанные для Роспатента, проходят аттестацию по информационной безопасности. Этот "увлекательный и интересный" процесс побудил меня вспомнить несколько баек из моей личной практики, связанные с IT-безопасностью.

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

Да будет байка!
Total votes 21: ↑18 and ↓3+17
Comments49

Шпаргалка — Как активировать лицензии 1С при помощи утилиты Ring

Reading time4 min
Views14K

Идея этого поста - шпаргалка на будущее, но я буду рад, если кому-то пригодится приведенная информация.

Если Вы читаете это, значит примерно представляете, что такое Ring. В этом посте речь только об активации лицензий. Позднее здесь я представлю ссылки на следующие шпаргалки по работе с ring-ом.

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

Стоит отметить, что в этом примере лицензии привязываются к параметрам машины!

Поехали.

Читать далее
Total votes 5: ↑4 and ↓1+7
Comments5

Принципы работы IQueryable и LINQ-провайдеров данных

Reading time8 min
Views77K
Средства LINQ позволяют .Net-разработчикам единообразно работать как с коллекциями объектов в памяти, так и с объектами, хранящимися в базе данных или ином удаленном источнике. Например, для запроса десяти красных яблок из списка в памяти и из БД средствами Entity Framework мы можем использовать абсолютно идентичный код:

List<Apple> appleList; 
DbSet<Apple> appleDbSet;
var applesFromList = appleList.Where(apple => apple.Color == “red”).Take(10);
var applesFromDb = appleDbSet.Where(apple => apple.Color == “red”).Take(10);

Однако, выполняются эти запросы по-разному. В первом случае при перечислении результата с помощью foreach яблоки будут отфильтрованы с помощью заданного предиката, после чего будут взяты первые 10 из них. Во втором случае синтаксическое дерево с выражением запроса будет передано специальному LINQ-провайдеру, который транслирует его в SQL-запрос к базе данных и выполнит, после чего сформирует для 10 найденных записей объекты С# и вернет их. Обеспечить такое поведение позволяет интерфейс IQueryable<T>, предназначенный для создания LINQ-провайдеров к внешним источникам данных. Ниже мы попробуем разобраться с принципами организации и использования этого интерфейса.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments3

Про лояльность и ЗП

Reading time4 min
Views103K

Пишу эту статью для гениальных генеральных директоров, хитрых умных собственников и руководителей отделов кадров служб персонала компаний, в которых трудятся ИТ специалисты и разработчики. Я поработал много где - начиная от домашне-уютных, с "семейной атмосферой", компаний и до "кровавого энтерпрайза", типа гигантов нефте-золото-брильянто-страховой металлургии. Начинал с админства, макросов и программирования приложений БД и постепенно ушёл на тёмную сторону дорос до ИТ директора в одной хорошей ИТ компании. Сегодня хочу поговорить про лояльность компании и про "денежную мотивацию", которая "в ИТ - не работает".

Почитать сказки про лояльность
Total votes 203: ↑175 and ↓28+188
Comments709

Как надёжно удалить файлы и зачистить HDD/SSD

Reading time7 min
Views90K


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

Естественно, в квартире находят множество улик, позволяющих квалифицировать гражданина сразу по нескольким статьям.

В таких условиях чрезвычайно важно перед обыском надёжно удалить всю информацию с накопителей и мобильных устройств, чтобы злоумышленник не получил доступ к контактной книге, аккаунтам в социальных сетях и мессенджерах — иначе вы подставите своих товарищей и предоставите дополнительные улики следствию.
Читать дальше →
Total votes 103: ↑84 and ↓19+91
Comments309

Лучше 1С может быть только 1С: Базуха

Reading time5 min
Views11K

Я уже ранее писал о том, что придумал движок, который позволяет работать с не 1С SQL-базой из клиентов, которыми являются базовые конфигурации 1С:Деньги. Думаю, это классное решение для небольших частных или малотиражных конфигураций! Я назвал его Базовый Учет или Базуха (Базовый Учет Хозяйства).

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments24

Убийца 1С на 1С

Reading time2 min
Views19K

Среди программистов 1С очень популярна тема «убийцы 1С», в частности и потому что на 1С очень удобно разрабатывать небольшие карманные приложения с базой данных, но лицензия начинается от 13.000 рублей, поэтому такие маленькие приложения никто не купит. Предлагаю обсудить технический подход для "удешевления" решений на 1С.

Читать далее
Total votes 33: ↑26 and ↓7+22
Comments196

Как вернуть былую славу 1С? (Make 1C Great Again)

Reading time41 min
Views49K
Сегодня компания 1С прекрасно себя чувствует — крепко удерживает лидерские позиции на рынке учетных систем СНГ, продвигает свои облачные решения, покупает новые технологии и целые компании, заключает выгодные союзы с IT-гигантами, правительство РФ включает их в перечень системообразующих компаний. Но надолго ли этот успех? Не перейдет ли в скором времени некогда успешная компания в учебники по бизнесу как яркий пример ошибок роста? И можно ли избежать возникающих проблем?

Данная статья описывает ситуацию, которая сложилась вокруг платформы 1С: Предприятие. Ведь несмотря на покупку известных веб-продуктов (Битрикс, МойСклад, Мегаплан, amoCRM, UMI и т.д.), основной доход для компании 1С уже третий десяток лет продолжают приносить именно продажи и обслуживание решений на платформе 1С: Предприятие.
Total votes 33: ↑30 and ↓3+35
Comments240

Судьба предателя, угнавшего новейший МиГ-25 в Японию

Reading time9 min
Views1.5M

Сегодня в воздушном пространстве США летают около пятидесяти истребителей российского производства — от устаревших МИГ-15 и до современных МИГ-29. Большая их часть приобретена на открытом рынке после распада Советского Союза и расторжения Варшавского Договора. В советское время у американцев не было шансов приобрести наши боевые машины, хотя Штаты ради этого были готовы на все.

6 сентября 1976 года произошло ЧП: во время учебного полета на одном из дальневосточных аэродромов в Приморье, старший лейтенант Виктор Беленко поднялся в воздух на суперсовременном МИГ-25, и не вернулся на базу.

Сегодня в воздушном пространстве США
Total votes 262: ↑153 and ↓109+100
Comments2916

Как я ушел на 1С-фриланс

Reading time4 min
Views41K

Хочу рассказать, как я умудрился уйти на фриланс.

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

Я приближался к возрасту 45 лет, работа программистом 1С вызывала отвращение. Необходимость каждый день быть в офисе "от звонка до звонка" воспринималась как рабство. 1С, кстати, я занимаюсь уже 20 лет. При этом еще 2.5 часа в день тратил на дорогу.

Читать далее
Total votes 36: ↑23 and ↓13+20
Comments216

Разбор статей конференции RecSys 2020

Reading time17 min
Views5.1K

Привет, Хабр! Несмотря на все невзгоды года текущего, интересные мероприятия и статьи с них никуда не деваются. Поэтому ML команда Одноклассников подготовила разборы работ коллег из Google, Microsoft, Tencent и др. представленных на прошедшей этой осенью конференции по рекомендательным системам RecSys 2020.

Спектр вопросов поднимаемых в понравившихся нам статьях включает в себя как разборы новых алгоритмов рекомендаций, так и подходы к уточнению оценки старых. Вдобавок к этому мы рассмотрим очередной вариант решения задачи multi-task learning, замолвим слово о causal inference в разрезе рекомендеров, а также коснемся темы того, почему пользователи оказываются в “пузырях рекомендаций”.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments0

IEnumerable<T> и IQueryable<T>, в чем разница?

Reading time2 min
Views47K
Уважаемые Хабровчане, решил поделиться одним не очевидным моментом использования LinqToSql, с которым столкнулся некоторое время назад. А именно, про особенности использования каскадных Linq запросов:

Работая над очередным ASP.NET MVC проектом, и проектируя уровень доступа к БД мне потребовалось проверить качество скриптов, генерируемых Framework-ом L2C.

Что имеем (упрощенный вариант модели):


class User {
  public long Id { get; set; }
  public string Name { get; set; }
  public IEnumerable<Parameter> Parameters { get; set; }
}

class Parameter {
  public long UserId { get; set; }
  public string Name { get; set; }
  public string Value { get; set; }
}

Для получения данных написан класс UserRepository:

class UserRepository: MyProjectDataContext {
  public IEnumerable GetUsers() {
    return this.Users.ToModelUsers();
  }
}

static class RepositoryHelper {
  public static IEnumerable<Model.User> ToModelUsers(this IEnumerable<DataAccess.User> users) {
    return users.Select(u => new Model.User { Id = u.Id, Name = u.Name, Parameters = u.Parameters.ToModelParameters() });
  }

  public static IEnumerable<Model.Parameter> ToModelParameters(this IEnumerable<DataAccess.Parameter> parameters) {
    return parameters.Select(u => new Model.Parameter {… });
  }
}

пишем
var users = userRepository.GetUsers().ToList();

смотрим профайлер, и с удивлением обнаруживаем что для загрузки 10 пользователей и их параметров было выполнено целых 11 запросов.
подробности
Total votes 64: ↑43 and ↓21+22
Comments35
1

Information

Rating
5,507-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity