Как математические концепции могут помочь мне в веб-разработке? - PullRequest
7 голосов
/ 23 июля 2010

Я видел, как программисты "боролись" с действительно сложными математическими проблемами в своих кодах, особенно в таких областях, как программирование игр, физическое программирование, графическое программирование и т. Д. Я веб-разработчик, и мне интересно, есть ли математика?концепции, которые я могу использовать для веб-программирования.Я начал веб-программирование год и 2 месяца назад, и все, с чем я сталкивался, - это сложный анализ систем, запросов к базам данных, проектов пользовательского интерфейса, простых структур данных, сложных манипуляций и интерпретации данных (регулярные выражения, анализ и т. Д.), Но я не(пока) нашел потребность в сложной математике.

Итак, чтобы повторить вопрос, существуют ли математические концепции, которые могут использовать мои навыки веб-разработки?Если да, то по каким сценариям они могут быть преимуществом или необходимостью?

Ответы [ 7 ]

1 голос
/ 23 июля 2010

На прошлой неделе я оптимизировал функцию проверки номера социального страхования (алгоритм Луна) в javascript и смог разбить ее на одну строку. Поиск решения включал алгебраическое доказательство, которое я не смог бы сделать без высшей математики.

Я думаю, что наибольшая выгода от мышления , как математика при кодировании.

1 голос
/ 23 июля 2010

Существует очень хорошая презентация и готовящаяся книга от Грегори Мередит по шаблонам монадического дизайна для Интернета. (Также будет серия видео-лекций на эту тему, написанная самим Грегори Мередитом на Channel9 когда-нибудь в ближайшие месяцы.) Вероятно, она не станет более математичной, чем Монады или Теория категорий (именно здесь Монады родом из) в общем.

Другим хорошим примером является тот факт, что интерактивное программирование (и особенно шаблон проектирования итератора) и реактивное программирование (и особенно шаблон проектирования субъекта / наблюдателя) являются теоретическими двойственными понятиями друг друга. Кроме того, оказывается, что шаблон проектирования итератора может быть реализован как экземпляр монады списка, а шаблон проектирования субъекта / наблюдателя может быть реализован как экземпляр монады продолжения. Поскольку обе монады, это в основном означает, что вы можете иметь дело с обоими , используя одинаковые инструменты .

Другими словами, вы можете иметь дело с потоками событий (с которыми обычно трудно иметь дело) так же, как с коллекциями (что каждый уже знает, как это сделать). ). Например, в .NET это означает, что вы можете «запрашивать» потоки событий, используя LINQ, поскольку на самом деле LINQ - это не что иное, как Monad Compiction, выполненные в виде SQL-запросов, так что корпоративные программисты не пугаются громких слов, таких как «Monad» .

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

1 голос
/ 23 июля 2010

Нет причин, по которым вы не можете использовать свои математические клетки мозга сегодня в веб-приложении. Вы упоминаете игру, физику и графику, как будто они не относятся к веб-программированию. Они не. Например, сегодня существует немало онлайн-игр, реализованных в виде веб-приложений, которые требуют нетривиальной математики (во Flash, Silverlight или даже JavaScript), чтобы получить пиксели в нужном месте на экране, включая 3D-проекции и преобразования. Добавь HTML 5 Canvas к смеси, и все станет действительно интересно.

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

1 голос
/ 23 июля 2010

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

1002

Другой подходящий пример - обнаружение мошенничества.

1 голос
/ 23 июля 2010

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

0 голосов
/ 23 июля 2010

Веб-программирование (или, по крайней мере, должно быть) в основном функциональное программирование , что на самом деле является математическим мышлением.

0 голосов
/ 23 июля 2010

С Silverlight и HTML5 (т. Е. Тэги canvas и svg) графика постоянно растет, и в ближайшем будущем будет трудно различить грань между сетью и рабочим столом.

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

...