Си шарп с нуля

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Вячеслав
  • Звание: Микробитер
  • Накопленный опыт: 46 часов
  • Баланс Мегахешей: собрано 0 Mh, потрачено 0 Mh
  • Баланс Байтов: нет
  • Не состоит в «Клубе формулистов»
  • Последний визит: 2020-05-08 13:43:12

Видеокурсы

Дата активности Видеокурс Прогресс
2020-03-17 java-start J1. Запуск 1 из 4 25 %
2020-03-17 yii Yii2 25 из 40 63 %
2020-03-17 iterator Итератор 4 из 10 40 %
2020-03-15 sqlonly SQL: ничего лишнего 2 из 10 %
2020-03-15 chess НаноШахматы 3 из 17 18 %
2020-03-15 power Дневник успеха 2 из 251 34 %
2020-03-13 yii_b PHP фреймворк Yii2 - вторая часть 1 из 9 13 %
2020-03-13 game0 Демо игры 1 из 10 10 %
Итого: 39 из 351 12 %

Консольные задачи

Дата активности Консольный раздел Прогресс
2020-03-16 solo C# набор 4 из 17 24 %
2020-03-15 jawa WRITE - Вывод данных 2 из 11 19 %
2020-03-13 jawa START - Запуск все 1 100 %
Итого: 7 из 29 25 %
Сохранить страницу:

25017. --
Денис
Денис
ответить
→  Вячеслав  # Yii2 / Rules - Валидация без правил / 2020-03-29 10:04

Проделана хорошая работа, спасибо что делишься подсказками, которые наталкивают на дальнейшую реализацию =)


24765. --
Anatoli
Anatoli
ответить
→  Вячеслав  # Итератор / Итератор. Перебор чисел в итераторе. / 2020-03-18 11:22

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


25017. --
Денис
Денис
ответить
→  Вячеслав  # Итератор / Итератор. Перебор простых чисел. / 2020-03-18 10:48

Хорошая работа, молодец! Хорошего дня


24765. --
Anatoli
Anatoli
ответить
→  Вячеслав   / 2020-03-17 21:54

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


24974. --
Вячеслав
Вячеслав
ответить
→  Anatoli   / 2020-03-17 20:18

Наоборот! Когда отойдёшь от шаблонности, то потом самый смак вылазить из дебрей! Я просто рекомендую проходить все уроки дважды, первый раз как у Витольдовича до буквы, а второй раз на свой лад. Можно и скорости во второй раз прибавить, к примеру х1.5 к обычной.


24765. --
Anatoli
Anatoli
ответить
→  Вячеслав   / 2020-03-17 17:23

Да, спасибо. Разобрался, там была такая опция AutoScaleMode-Font поменял на None и заработало. Бывает случается, хотя повозиться пришлось, думал в grid, что-то не то, а оказалось на главной панели установлена была эта опция. Но тут так сложно, на словах обьяснить, проще показать и следовать указаниям Евгения Витольдовича, шаг влево или вправо и приключения, на свою голову, но так ведь тогда веселей.


24974. --
Вячеслав
Вячеслав
ответить
→  Виталий  # Демо игры / Картинка с секретом / 2020-03-17 16:29

Вы бы написали, что именно не получилось, может был бы толк, еслиб кто-то объяснил тогда.


24974. --
Вячеслав
Вячеслав
ответить
→  Виталий  # Теория ООП / Расстояние между пикселями / 2020-03-17 15:28

Странно, если речь о вызове одним конструтором другого, то без пробле должно вызывать. Таким образом можно без дублирования кода создать множество различных конструкторов перекрывающих друг друга, чтоб не переписывать их код и сделать несколько вариаций создания объекта класса. Только на мой вкус делается это не совсем интуитивно в C#:

public Employee(int weeklySalary, int numberOfWeeks): this(weeklySalary * numberOfWeeks)
{
}

В вышеуказанном коде конструтор вызывает сначала другой конструктор через this, у которого только один аргумент.


24974. --
Вячеслав
Вячеслав
ответить
→  Anatoli  # Секундомер / Настройка формы / 2020-03-17 15:15

Я не помню как в вижуал студии, но в большинстве визуальных редакторов, если кликнуть на компонент у которого есто тектовые данные, то в редакторе его свойств в списке параметров должны быть как Font, так и внутри него Font Size.


24974. --
Вячеслав
Вячеслав
ответить
→  Dmitry Sinitsin   / 2020-03-17 15:11

Может так и было задуманно! )


17947. --
Dmitry Sinitsin
Dmitry Sinitsin
ответить
→  Вячеслав  # Yii2 / Rules - Валидация без правил / 2020-03-17 15:03

А мы в курсе "Доска объявлений" вручную пункты переводили ))))


24765. --
Anatoli
Anatoli
ответить
→  Вячеслав   / 2020-03-16 14:39

Как-то пробовал c# в линукс давно, несколько лет назад, там какие-то формочки даже запускались, все очень аскетично и надо много с бубном танцевать, но что-то работало, но я дальше "Привет, Мир!" не заходил. В винде все это свое и родное, потому да просто и доступно. В линуксе идти должен хорошо xamarin, так что попробуй и отпишись, как впечатления.


24974. --
Вячеслав
Вячеслав
ответить
→  Anatoli  # Шифрование / Перестановочный шифр - 2 этап шифровки / 2020-03-16 10:28

Проблема C# у меня лично из-за того, что это один из немногих языков программирования, который жестко привязан к Windows платформе дот NET-ом. Мне удалось запустить консольные приложения на линуксе, но вот, беда в том, что многие хорошие уроки на данном сайте создавались с оконным интерфейсом, а для него пока рабочих решений, кроме виндовых, нет.


24974. --
Вячеслав
Вячеслав
ответить
→  Dmitry Sinitsin   / 2020-03-15 19:03

Да не такой уж у меня и багаж, как видите! Я потерялся во фреймворке yii..
Занесло меня сюда именно при поиске уроков по yii2. Я нашёл на ютубе массу материала, но только у Евгения был реальный обоснованный подход, который сильно отличал его от других. А фреймворка мне не хватало именно из-за того, что мои личные проекты разрослись до непподерживаемого уровня. Поскольку я всю жизнь работаю один, мне не помешал бы коллектив в виде данного сообщества, хотябы на время изучения фрейворка, а может и в дальнейшем для поддержания штанов! Писать код программисту нужно постоянно ведь.. Ну и вруг тут весело ;)


17947. --
Dmitry Sinitsin
Dmitry Sinitsin
ответить
→  Вячеслав   / 2020-03-15 18:54

Как Вас сюда занесло, с таким богатым богажом? Крайне интересно читать вашу переписку. Тут в основном новички обитают, как я наблюдаю, и вдруг такой свежий ветер )


24974. --
Вячеслав
Вячеслав
ответить
→  Евгений Волосатов   / 2020-03-15 18:53

Начал понимать, что я чем дальше тем сильнее стал путаться в иерархиях классов yii фрейворка. Все "use" перемешались в голове, я не могу понять где брать эти пути ко всем этим классам и компонентам. Почему у одного use путь от корня vendor, а у другого начинается внутри сабдиректории какого-либо модуля? Где найти эту информацию и научиться владеть ей?


24974. --
Вячеслав
Вячеслав
ответить
→  Валерий Жданов   / 2020-03-15 15:43

Вам виднее, хотя некоторые неприятные практики я тяну с собой ещё с мезойского периода своего познания в программировании. Оправданием было как раз, то, что это не продакшн. Эти некоторые практики влияют на неверный выбор платформ, ЯП и сред разработки до сих пор. Есть случаи, когда надо для понимания сути переступить через целый этап правил и условностей, чтоб не размазать концентрацию на главном. Но с именами переменных я бы не шутил! Это как с отклонением от парадигмы или, если хотите, посягательство на святое! Ибо я видел много разногласий между сторонниками той или иной парадигмы программирования (пробелы или табы, функциональное или объектоно-ориентированное, python или ... не python!), но все они станут на одну сторону, если вопрос коснётся имён переменных.


791. --
Валерий Жданов
Валерий Жданов
ответить
→  Вячеслав  # Доска объявлений / Расширенный поиск - генератор поиска - три вида цены и один POST / 2020-03-15 15:24

Вячеслав, здравствуйте, я Валерий Жданов, автор курса "Доска объявлений". Такое некорректное наименование переменных - это скорее моя вина (Степан сделал как было в моем видео). В общем-то Вы правы, переменные лучше именовать по прямому назначению. Но в данном случае почему я отказался от этой практики, - чтобы не увязнуть в "классификации" функций, методов, свойств и предназначений, из которых будет название функции (какое-нибудь bulletins_themes_add_index_view_bullselect_tmp... и попробуй ошибись в названии). Вы говорите, что  даже правильно бывает потратить минут 5-10 на обоснованное именование переменной. В уроках и учебных проектах я считаю это даже вредным, так как отвлекает от запоминания темы и отработки навыков, которым данный урок и посвящен.
Да и понимать, что она не нужна, и использовать другое решение... на уроках в большинстве случаев нам надо не искать обходные пути решений (пусть даже и оптимальные), а рассмотреть стандартные (чтобы изучить базу, и обучающемуся было от чего оттолкнуться).
Вот из расчёта этих моментов в данном курсе я отказался от траты времени на "именование по прямому смыслу". А по поводу реальных проектов Вы правы, там это необходимо


791. --
Валерий Жданов
Валерий Жданов
ответить
→  Вячеслав  # SQL: ничего лишнего / Запуск mysql-консоли и создание базы данных / 2020-03-15 14:49

отлично! можно их переносить без создания дампа


24974. --
Вячеслав
Вячеслав
ответить
→  Степан  # Доска объявлений / Расширенный поиск - генератор поиска - три вида цены и один POST / 2020-03-15 12:56

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


9014. --
Николай Денисов
Николай Денисов
ответить
→  Вячеслав  # PHP Driver / Установка и настройка Apache + PHP / 2020-03-15 05:09

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


24974. --
Вячеслав
Вячеслав
ответить
→  Mr.Smitt  # Шифрование / RSA - Де/шифровка / 2020-03-15 00:30

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


24765. --
Anatoli
Anatoli
ответить
→  Вячеслав  # Итератор / Итератор. Зачем нужно два класса / 2020-03-14 22:06

Да это хорошая и нужная вещь, ленивая инициализация, в некоторых областях без этого никак.


24765. --
Anatoli
Anatoli
ответить
→  Вячеслав   / 2020-03-14 22:01

За первый ролик не снимаются байты, а последующие по 50 байтов, и как семечки эти ролики щелкаються.


24765. --
Anatoli
Anatoli
ответить
→  Вячеслав  # Начало здесь / День №7. Регулярный и Последовательный подход. / 2020-03-14 21:58

Завтра надо это сделать, не понятно, почему это нельзя автоматизировать?


24974. --
Вячеслав
Вячеслав
ответить
# Yii2 / Web - Первый кирпич сайта / 2020-03-14 20:03

Не судите строго, нигде рядом нет ни одного десктопа с Windows. OpenServer когдато уже устанавливал, так что формально я прошёл этот этап! Далее я без проблем смогу установить и настроить сервер на линукс и в остальных этапах данного видео-курса не должно даже почувствовавться разницы.


24974. --
Вячеслав
Вячеслав
ответить
→  Anatoli  # Итератор / Итератор. Зачем нужно два класса / 2020-03-14 19:33

Итератор - великолепный тип обьектов, который заменяет, например массивы для нубов. Пример: Нуб при обращении в базу данных всегда норовит выдернуть все данные из базы и запихнуть их в массив ибо ничего кроме массивов не умеет. Я бы вобще запретил отдавать данные драйвером БД в массив! Когда ты тренируешься на базе из максимум 100 строк, то тебе можно незаметно для производительности и железа всё сразу прочитать в массив. Но вреальной жизни тебе может вылететь из запроса к базе, например 10 000 000 записей, а если это вебсервис с публичным доступом, то мало ли ещё сколько таких клиентов может быть, даже если у них и не по 10 000 000 записей в запросе. На помощь приходит итератор, он умеет взять на себя только нужную часть данных и безболезненно перемещаться по данной выборке. Можно итерировать данные не только из базы, но и любые последовательности.


24974. --
Вячеслав
Вячеслав
ответить
→  Anatoli  # Начало здесь / День №5. Создание игровых и прикладных Программ. / 2020-03-14 19:24

У меня наоборот, купил доступ, получил 1000+ байт. Просмотрел более менее с десяток видео и уже осталось байт как кот наплакал!


24974. --
Вячеслав
Вячеслав
ответить
→  Anatoli  # Начало здесь / День №7. Регулярный и Последовательный подход. / 2020-03-14 19:22

Я тоже всё-время теряюсь в этом интерфейсе! Там же где статистика, если пролистать вниз, будет ссылка на недельные отчёты и видеоурок по составлению видеоотчётов будет первым!


24974. --
Вячеслав
Вячеслав
ответить
→  Николай Денисов  # PHP Driver / Установка и настройка Apache + PHP / 2020-03-14 19:14

Вроде бы урок посвящен PHP. Почему установка веб-сервера и модуля исполняющего тот самый PHP вызвала реакцию "пляски с бубном"? Это скорее необходимый минимум. Другие методы ещё сложнее, хотя, скорее, на вкус и цвет просто разные.


24974. --
Вячеслав
Вячеслав
ответить
# Консоль / Олимпиада / Случайная задача / 2020-03-14 11:18

Легко, решается без IDE прямо тут.


24974. --
Вячеслав
Вячеслав
ответить
→  Виталий  # Базовый ASP.ект / Подключение к базе данных / 2020-03-14 10:20

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


9014. --
Николай Денисов
Николай Денисов
ответить
→  Вячеслав  # Демо игры / C# чего начать программировать / 2020-03-14 04:41

Зачем пробовать, когда можно просто стать программистом!             
Нужно просто взять и заняться интересным делом!


24974. --
Вячеслав
Вячеслав
ответить
→  Илья  # Yii2 / Bootstrap - Пусть будет красиво! / 2020-03-13 20:53

С альясом  '@bower' => '@vendor/bower-asset',    всё  понятно, а вот какую проблему решает    '@npm' => '@vendor/npm-asset', осталось, как минимум для меня не ясным?


24765. --
Anatoli
Anatoli
ответить
→  Вячеслав   / 2020-03-13 18:34

Помню монитор был на 10 дюймов где-то не помню, не к телеку, потому все было аккуратно с проводами и только, иногда кассеты зажевывало, так и не купил дисковод, а купил первый 80386 и там уже все было на дискетах, но тоже только игрушки, но уже реже играл, на спектруме было интереснее играть.


24974. --
Вячеслав
Вячеслав
ответить
→  Dmitry Sinitsin   / 2020-03-13 16:41

Спасибо! Только я не думаю, что у меня будет что-то нестандартное. При том, что разработка ведётся на нативной для продакшена системе, я все же предпочитаю не заграмаждать рабочую систему установкой окружения, а использовать всё те же системы виртуализации в сочитании с Vagrant. Судя по тому что я увидел в видеокурсах OpenServer уже далеко не тот со времён, когда я его помню, он стал намного круче! Но меня в разработке на линуксе больше радует не окружение софтового сервера, а скорее работа с консолью. Как-то так, если вам действительно интересно!


24974. --
Вячеслав
Вячеслав
ответить
→  Anatoli   / 2020-03-13 16:36

До того момента, когда не повиснет спектрум, например если зацепить хорошенько шнур питания!


17947. --
Dmitry Sinitsin
Dmitry Sinitsin
ответить
→  Вячеслав   / 2020-03-13 16:34

С интересом буду следить за Вашими отчетами - нестандартные разработки любопытны. Удачи!


24974. --
Вячеслав
Вячеслав
ответить
→  Виктория  # Демо игры / C# чего начать программировать / 2020-03-13 16:33

Иногда надо забывать "думать как программист" это полезно и в обыденной жизни и в поисках не тривиальных решений.


24974. --
Вячеслав
Вячеслав
ответить
# Yii2 / Composer - Установка пустоты / 2020-03-13 16:10

Рекомендую установить в PhpStorm следующие плагины:
YiiStorm, Yii2 Support, Yii2 Inspections, Php inspections, Yii::t
Станет в разы удобнее!


24974. --
Вячеслав
Вячеслав
ответить
→  Dmitry Sinitsin   / 2020-03-13 15:10

Да, разрабатывать на нём мне удобнее.


17947. --
Dmitry Sinitsin
Dmitry Sinitsin
ответить
→  Вячеслав  # PHP фреймворк Yii2 - вторая часть / Welcome - Вступление / 2020-03-13 11:15

На линуксе орудуете?


1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Вячеслав   / 2020-03-13 10:30

Подписка в Клуб формулистов обновлена.
Количество дней: +75
Количество байт: +1024

Подписка КФ до: 2020-05-27
Остаток байтов: 1024
Вы являетесь участником Клуба формулистов.


24974. --
Вячеслав
Вячеслав
ответить
# Yii2 / Web - Первый кирпич сайта / 2020-03-13 00:45

После платной подписки всё-равно появляется кнопка "Вступить в клуб"


  • Звание: Микробитер
  • Накопленный опыт: 46 часов
  • Собранный капитал: нет
  • Участник «Клуба формулистов»: до 2020-05-27

Клуб формулистов

Правила клуба формулистов

У каждого формулиста есть задача минимум на каждый день:
+ зайти на сайт, проверить один отчёт, получить 1 байт.
Задача максимум - выполнить все остальные ежедневные задачи.
Нажмите здесь чтобы перейти к ежедневному чек-листу.

В 24:00 МСК накопленные за сутки байты переносятся в недельный актив.
В воскресение 24:00 МСК все накопленные байты переходят на баланс формулиста.

Собранные байты можно обменивать на доступные видеокурсы (1 байт = 1 рубль, без скидок)
Приобретённые за байты видеокурсы доступны только во время нахождения в автобусе/клубе формулистов!

При завершении подписки в автобусе/клубе формулистов все накопленные байты обнуляются, а доступ к видеокурсам, приобретённым за байты, закрывается.
Продлевайте подписку заблаговременно.

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Узнал про некоторые полезные методы и поля класса-компонента User, такие как isGuest, login(), logout()..



Научился: Научился устанавливать библиотеку Faker и генерить с его помощью тестовые данные. Генерация данных инициализировалась в модели UserRecord методом setTestUser, который вызывался в котроллере UserController->actionJoin. Данные успешно попали в таблицу user базы данных проекта.