All streams
Search
Write a publication
Pull to refresh
60
22
Стас Выщепан @gandjustas

Умею оптимизировать программы

Send message
Каким образом?
Реквестирую 1С в 50 строк!
В Java есть разница между системой типов яызка и системой типов рантайма. Вторую не рассматриваем. В первой массив тоже generic тип, хоть и неявно. Для того чтобы эмулировать его обобщенность есть 100500 перегрузок функций класса Array.

Но в Java массивы фиксированы, в JS — динамические. В Java надо будет еще разбираться с ArrayList, который кстати generic и почему он так сильно отличается от обычного массива.
Я спрашиваю про всех. Практика показывает что даже на программистских специальностях не более 20 процентов имеют опыт программирования. В школе сейчас программирование или не преподают вообще или делают это крайне плохо.
А если часть системы смотри в две ноды, а другая часть в 8, как они себя будут вести?

Вариант с очередью е вариант, потому что клиент стоит у кассы и ему надо напечатать билет или отказать.
Да ладно, механизмы кворумов придумали давно. При правильном применении так часть, где 8 будет нормально работать и продавать билеты, а та часть где две ноды осталось уйдет в даун. Админы поменяют настройки NLB и через 20 минут все пользователи пойдут на живые ноды.Но это не с mongo.

Если Монго не предлагает третий вариант, то это не значит что его нет ;)

Вообще из-за хайпа вокруг NoSQL появилось дофига «школьников», которые не знают про подходы, используемые в РСУБД десятилетиями. Зато хорошо повторяют маркетинговый буллшит NoSQL. Вот и получаются такие опусы.
Это называется приуменьшением потенциальных проблем. Нет никакой гарантии что это два билета. Можно продать ползала\вагона\салона_самолета два раза в таком случае. Это удар по репутации гораздо сильнее, чем накладные затраты на разруливание. А если еще учесть что Монго не делает acid записи в принципе, то становится совсем грустно.
Еще раз говорю — прочитай SICP посмотри как там построен курс.

Ты пытаешься доказать что подход, который не просто работает, а очень хорошо себя зарекомендовал на протяжении десятков лет, плохой?

У тебя лично большой опыт преподавания, особенно начального?.
Английский — обязательно. В любом случае рано или поздно надо будет изучить на уровне понимания команд в IDE. Главное чтобы учебник был на русском.

Проблемы с сетью? Вы о чем? У всех 3г\4г, да и на крайняк можно поставить ченить в классе.

Объяснить '===' и '==' очень просто. Первый выполняет простое сравнение, второй семантическое. Таблица для семантического сравнения простая, но все равно лучше не использовать.

Кстати почти во всех языках есть аналоги '===' и '==', ниче живут люди.

Откуда вы языки знали?

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

Еще раз говорю — прочитай SICP посмотри как там построен курс.
Тем что люди начинают после этого наследовать квадрат от прямоугольника. В реальном мире то квадрат является частным случаем прямоугольника.
Везде поддерживается, кроме IE8-, а что это меняет? кстати первым же упражнением на массивы имеет смысл написать свой forEach.

Где надо ===, а где == расскажет jshint, встроенный в jsfiddle. Кстати JSHint как раз работает по рекомендациям из книги JavaScript: Good Parts.
Ты видимо не совсем понимаешь.

1) Начальное программирование преподается для тех, кто еще ни на чем никогда не программировал.
2) Весь курс занимает один учебный семестр, примерно 17 недель занятий (минус два, ибо первое вводное, а последнее — зачет). 15 занятий по 2 ак. часа + столько же практики. При интенсивном обучении такой курс можно уложить в неделю по 8 астрономических часов в день.
3) Цель курса — научить комбинировать программы из подпрограмм, обучить базовым структурам данных и базовым алгоритмам. Обязательно должны войти массивы и матрицы, рекурсивные структуры данных (списки и деревья), графы, немного динамического программирования.

Если ты в этот курс нагрузишь типизацию, управление ресурсами, ООП, многопоточность и синхронизацию, то только их будешь объяснять полгода.
ОМГ, тока не биология. ООП на основе реального мира задает категорически неверный подход к проектированию.

После такого обучения ООП люди неправильно понимают ООП.
Не нужно просто этого писать.

Как в анекдоте:
— доктор, когда я так делаю мне больно
— не делайте так

И типизацию не придется объяснять. Посмотри SICP там не объясняется типизация языка.
То есть вместо общей концепции вы предлагаете изучать конкретную реализацию? Да еще и довольно не наглядную?


Ты смотришь через призму ООП. Если не затрагивать ООП и классы, то Объект === map отличная концепция. Очень простая и понятная.

Я не предлагаю изучать систему типов досконально. Достаточно базового уровня — как структуры контейнера данных и методов.


Любой контейнер в типизированном языке это generic. Это вызывает кучу проблем с пониманием. Многие, кто переходят на C#\Java с PHP\JS довольно долго втыкают generic_и. Не думаю что на курсе начального программирования имеет смысл рвать этим мозг.

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

Для инженерных специальностей лучше таки JS или Python.

Кстати в JS уже есть давно Array.prototype.forEach. Граблей много в любом яызке, по ним можно просто не ходить. Ведь во время начального обучения каждый шаг под присмотром преподавателя.

Вообще обучение программированию и программирование на конкретном языке — две большие разницы.

ЗЫ. После того как я прочитал JavaScript: Good Parts я вообще забыл про все грабли JS, просто перестал пользоваться потенциально опасными вещами. Ничего от этого не потерял.
Я предлагаю скачать SICP и прочитать, найдете там модульность, которой нет в JS — с меня пиво.

Information

Rating
329-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Software Architect, Delivery Manager
Lead
C#
.NET Core
Entity Framework
ASP.Net
Database
High-loaded systems
Designing application architecture
Git
PostgreSQL
Docker