Недавно увидел очень хороший способ уложить сайт с помощью LINQ. Программист на работе написал очень хорошую строку кода в которой прямо в методе Where написал C# функцию, которая должна была разбирать имя домена.
.NET не может оптимизировать такие вещи и выполнять из на сервере, поэтому вынужден будет вытащить все данные из базы, а потом для каждой строки выполнить C# функцию.
Если любите LINQ для доступа к базе данных, то разбивайте свои Where методы на составляющие.
Почитал сейчас про JavaFX 2.0 и что-то хочется попробовать его. Но жалко времени тратить на него, ведь реально на нем писать все равно не планирую. Сейчас все ухидит в Web и я ушел туда уже давно и десктопного давно ничего не разрабатываю. Те программы, которые можно писать на Java можно реализовать и в Web и будет более доступно.
Из десктопного программирования сейчас спрос все еще есть на системные утилиты, фото/видео и аудио пакеты, офисы но все это уже есть на рынке в большом изобилии. Писать очередного конкурента смысла нет. А вот в Web потенциал больше на мой взгляд.
Но соблазн хотя бы попробовать и посмотреть что такое JavaFX 2.0 есть.
Если честно, то не совсем понимаю, почему до сих пор используется термин ASP.NET? Не уверен, что его правильно используют в отношении Web приложений на .NET, если честно, то я вообще мало чего знаю о термине .NET.
Лично я пишу сайты на C#. Каждый раз когда меня спрашивают, на каком языке я пишу сайты, то я говорю именно C# и почти всегда меня переспрашивают: "ASP.NET?".
Лично я считаю, что я пишу именно на C# и использую только его в сочетании с JS и CSS. Я не использую среду разработки Visual Studio и не использую ничего из того, что входит в WebForms. У WebForms есть свои специфичные тэги для Web и может именно это подразумевалось под термином ASP.NET.
У клиента человек, который занимается тестированием и подтверждением всех сайтов начинает меня сильно раздражать. Его клеймы постоянно одинаковы:
Filters aren't working properly
Бль. А можно более конкретно написать, что именно не работает? Каждый раз, когда я получаю подобный тикет, этот тикет становится клиентом для того, чтобы пинать его туда сюда с выяснением того, как что-то должно работать.
Я кажется уже причины описывал, но не могу что-то найти.
Самой стабильной и надежной была когда-то Delphi 7, но после этого пошли провала и версии 2005, 2006 были ужасны. Плюс я начал задумываться о переходе на лицензионный софт.
Вот и совпало, что платить за Delphi смысла нет - стабильная версия устарела, а современные не стабильны, да и цена заоблачна. Тогда я и выбрал Visual Studio Express, которого вполне достаточно для меня.
Общался сегодня с программистом в нашей компании о PlayStation и затронули тему разработки под эту платформу. Я пока не нашел, как Sony работает с компаниями и независимыми разработчиками, но увидел, что вполне реально стать разработчиком для мобильной платформы - Vita и телефонов. Подписка на год стоит всего $99, как и у Apple или Microsoft для мобильных платформ.
Нет, я ничего реального писать не планирую, но просто сегодня узнал (раньше и не интересовался), что разрабатывать под PlayStation Vita можно на C#. Посмотрел одно видео на youtube и все оказалось очень даже просто. Просто для прикола можно написать что-то, если бы было время.
Кто-нибудь из вас уже писал для PlayStation какого либо размера?
Используешь какой-то код один раз? Можно написать его напрямую в модуле. Нужно использовать его в двух местах? Категорически не рекомендую копировать код, даже если ты думаешь, что он понадобится только дважды. Большинство это прекрасно понимает, но я почему-то регулярно вижу подобное даже у опытных программистов.
Очень часто программисты занимаются Copy/Paste, а ведь так просто взять и сделать код более универсальным. Если есть какая-то сходная задача с небольшими отличиями, то ее почему-то пишут дважды. А ведь так просто сделать что-то более универсальное, что будет проще сопровождать.
У меня на работе ETL скрипты - это просто SQL файлы, которые мы запускаем на сервере в определенном порядке. Все работало прекрасно, пока один скрипт не начал тормозить капитально. Общая скорость работы скрипта стала превышать лимит в 3 часа.
Я запустил скрипт пошагово и он выглядел вполне нормально. Вначале создается таблица:
declare @promotions table (PromotionID int, Здесь есть еще колонки);
Потом таблица заполняется данными и если выполнить скрипт заполнения данными, то он работает несколько секунд.
У меня в команде есть один супер программист, который просто создает таблицы, и думает, что они магическим образом будут работать. Только что на сервере увидел очередной его шедевр:
CREATE TABLE [dbo].[TxnData]( [TxnDataID] [bigint] IDENTITY(1,1) primary key, [TxnID] [bigint] NOT NULL, [Name] [varchar](50) NOT NULL, [Value] [varchar](255) NOT NULL, )
Продолжаю читать просто отличные статьи о высоких нагрузках в журнале Хакер и сегодня прочитал про принцип очередей для отложенной обработки данных. Все написанное в статье абсолютно верно. Я уже говорил, что сайт моего клиента очень большой и сложный, поэтому конечно же мы сталкиваемся с необходимостью отложенной обработки и сегодня я хочу показать, как можно делать очереди.
Допустим, что нужно отправить пользователю письмо, но крупные сайты создают тысячи писем в час и отсылать их на каждый запрос будет убийством сервера и времени. Пользователь не хочет ждать, когда мы реально соединимся с SMTP сервером и отправим ему или кому-то еще письмо, для него важнее сразу получить ответ от сервера. Вот именно это мы и делаем.
Когда нужно отправить письмо, то мы только сохраняем в базе маркер, что пользователь хочет что-то отправить и тут же отвечаем ему, что мы все поняли и все сервера Америки уже работают над доставкой сообщения.