Статьи

Создание аргумента для ColdFusion

После десятилетия веб-разработки я играл практически со всеми языками. Я пробовал себя в ASP, провел много времени с PHP и совсем недавно прыгнул в мир ColdFusion.

Когда я впервые познакомился с ColdFusion, я был против. На тот момент это была версия 5.x, и я ничего не видел в ней, что мне нравилось. Мой коллега на Восточном побережье использовал его годами и был опытным программистом ColdFusion. Я был опытным программистом PHP, который только что завершил крупный проект для моего отдела, и теперь меня просили перейти на ColdFusion, чтобы соответствовать мировым операциям. Я был мошенническим разработчиком своего PHP-веб-сервера FreeBSD, и я не вписывался в мир Microsoft, в котором работал.

Моя компания отправила меня на Восточное побережье, чтобы поговорить с этим разработчиком и узнать больше о ColdFusion и о том, почему это будет хорошим шагом для нас. Конечно, я был скептичен; ColdFusion был языком богатого человека в моих глазах. С сервером стоимостью 1300 долларов и более, не считая стоимости MS Windows и т. Д., Я не мог понять, как мой маленький раздел мог позволить себе совершить скачок. Я провел неделю на Восточном побережье, следя за этим программистом ColdFusion, и когда я уехал домой, у меня была стопка книг по ColdFusion и новое уважение к языку.

Многим из вас, я уверен, в какой-то момент приходилось искать альтернативный язык для веб-разработки. Нелегко перейти с языка, который вы знаете, любите и потратили месяцы или годы на освоение, на язык, который кажется совершенно иностранным. Это то, с чем я столкнулся, когда меня попросили переключиться с моего счастливого мира PHP на темную сторону ColdFusion.

Чуть более двух лет спустя я на 100% являюсь магазином ColdFusion. Конечно, я все еще говорю о PHP, и я все еще рекомендую его здесь и там, но я узнал, что я могу делать вещи быстрее, чище и — верьте этому или нет — дешевле, чем я мог бы с PHP. Вы можете быть скептиками сейчас, как я когда-то был, но я надеюсь, что к концу этой статьи вы начнете видеть достаточно света, чтобы понять, что ColdFusion в конце концов не является темной стороной.

Фон

Во-первых, некоторые сведения о языке ColdFusion для тех, кто в полном неведении.

ColdFusion был первоначально разработан братьями Allaire в 1995 году. Затем была основана компания Allaire, которая впоследствии была куплена Macromedia. Как и большинство веб-языков, он должен был предоставить веб-разработчикам возможность общаться с базой данных и отображать данные на веб-страницах. Как и во многих таких языках, в первые годы это была не самая передовая технология, но она была одной из наиболее простых в реализации, понимании и использовании. Это видение остается в силе с сегодняшним ColdFusion MX (версия 6.x ColdFusion). Фактически, ColdFusion был причиной того, что Microsoft выпустила ASP, который разрабатывался Aspect Software, конкурентом Allaire, который впоследствии был куплен Microsoft. Итак, вкратце, все вы, ASP-программисты, должны поблагодарить разработчиков ColdFusion за ваш язык программирования!

Теперь давайте вернемся к истории языка ColdFusion. Помимо истории приобретений и изменений, ColdFusion всегда был языком быстрой разработки приложений (RAD), созданным для Интернета. ColdFusion выполняет это требование RAD, предоставляя язык на основе тегов, который будет знаком любому программисту HTML.

Многие другие языки используют программный подход к написанию сценариев на стороне сервера, что отлично подходит для опытных программистов, но для тех, кто проводит большую часть своего времени с HTML-тегами, это может быть немного сложным. Тег ColdFusion всегда выглядит как <cfTagName> Подобно тому, как PHP использует <?php<%<cf

Большинство тегов ColdFusion имеют конечный тег, который составляет пару тегов. Как и теги HTML, теги CF заканчиваются на </cfTagName> Так, например, вы можете использовать следующий код:

 <cfloop index="i" from="1" to="10"> 
 <cfoutput>#i#<br /></cfoutput>
</cfloop>

Оба <cfloop><cfoutput> </cfloop></cfoutput> Как вы можете видеть из приведенного выше примера, вы можете иметь код между тегами и даже вкладывать теги, если они нужны вашему приложению.

Вы только что видели очень короткий фрагмент кода ColdFusion. Я не собираюсь обучать вас ColdFusion здесь, но дать вам достаточно знаний, чтобы вы захотели проверить их дальше. Чтобы узнать больше о тегах ColdFusion, или же языке разметки ColdFusion (CFML), посетите веб-сайт Macromedia или просмотрите многие прекрасные статьи здесь, в SitePoint.

Мифы о ColdFusion развенчаны

Теперь у вас есть некоторая базовая справочная информация об истории ColdFusion и о том, как работает его язык на основе тегов. Но я уверен, что вы еще не проданы на ColdFusion — на самом деле, вы, вероятно, думаете так же, как и я. Давайте углубимся в некоторые мифы и заблуждения о ColdFusion, чтобы немного очистить эфир.

Миф № 1: ColdFusion — это язык богача

Ложь! Да, если вы зайдете на веб-сайт Macromedia и посмотрите на сервер ColdFusion, вы увидите наклейку стоимостью 1300 долларов США за стандартную версию, а если перейдете на веб-сайт Zend, вы можете приобрести их PHP Performance Suite примерно за 1875 долларов. Я знаю, что вам не нужен Performance Suite для запуска PHP-приложений, но Performance Suite предоставляет вам «Динамическое кэширование контента, технологии ускорения кода и сжатия файлов как единое решение», что дает вам сервер Macromedia ColdFusion. коробка.

Это хорошее время, чтобы подчеркнуть, что Macromedia не взимает плату за серверы разработки, а только за реальный производственный сервер. Итак, что происходит, когда вы идете в производство? Что ж, если у вашей группы есть бюджет, вы можете приобрести версии Macromedia Standard или Enterprise или выбрать бесплатную версию сервера ColdFusion. Помимо выпуска для разработчиков, загрузите любой сервер Macromedia ColdFusion, и через 30 дней он станет полнофункциональным выпуском для разработчиков.

Компания под названием New Atlanta имеет собственную версию сервера ColdFusion. Этот сервер ColdFusion называется Blue Dragon и поставляется в трех вариантах, как и серверы Macromedia. Новая Атланта имеет Server Edition, версию Server JX и версию J2EE, в то время как Macromedia имеет версии J2EE для Standard, Enterprise и Enterprise. Отличительной особенностью версии New Atlanta Server является то, что она в настоящее время бесплатна, и в ближайшее время никаких признаков этого изменения не будет. Почему это бесплатно? Он не имеет всех тегов CFML, которые вы получили бы в версии New Atlanta JX или Macromedia Standard Edition.

Я работал на новом бесплатном сервере в Атланте и могу вам сказать, это здорово. Он накладывает некоторые ограничения на теги, которые вы можете использовать, и на типы баз данных, к которым вы можете подключиться (в настоящее время он ограничен MySQL, PostGreSQL или ODBC через ODBC / JDBC Bridge), но ничего из этого не повлияет на вашу разработку. — большинство отсутствующих тегов относятся к Macromedia. С точки зрения производительности мне было действительно трудно различить разницу, хотя она, вероятно, будет варьироваться от приложения к приложению и от сервера к серверу.

Новый продукт Atlanta предлагает начинающим программистам ColdFusion возможность развертывания приложений с минимальными затратами для конечных пользователей. Вы даже можете связать сервер New Atlanta с вашим приложением и сразу развернуть его (для этого требуется специальное лицензирование). Таким образом, ColdFusion уже не только для богатых. Новая Атланта принесла это в массы.

Миф № 2: ColdFusion медленен

Ложь! ColdFusion очень быстр, даже для тех, кто только начинает и не освоил все приемы.

В настоящее время ColdFusion MX построен с использованием Java (в прошлом он разрабатывался на C ++), и когда ваши страницы запускаются впервые, они компилируются в байт-код Java. С точки зрения непрофессионала, ваши страницы ColdFusion компилируются при первом запуске, почти как программа, а затем сохраняются на сервере ColdFusion в виде двоичных файлов. Если ваш сервер ColdFusion настроен с включенным Trusted Cache, ваши файлы будут скомпилированы только один раз. Если Trusted Cache отключен, ваши файлы компилируются при каждой загрузке страницы или по истечении срока действия страницы (опять же, обсуждение кода CFML и деталей конфигурации сервера для этого выходит за рамки данной статьи).

Итак, что же такого особенного в том, что страницы компилируются в байт-код?

Байт-код — это объектный код компьютера, который обрабатывается программой, обычно называемой виртуальной машиной, а не «реальной» компьютерной машиной, аппаратным процессором.

(Определение от Whatis.com )

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

Миф № 3: ColdFusion не поддерживается, как <insert language>!

Опять неправильно! ColdFusion имеет огромное сообщество последователей и поддерживается одной из крупнейших интернет-компаний. Вы можете найти постоянных последователей ColdFusion практически в каждом крупном городе мира. Как правило, они принадлежат к локальной группе пользователей ColdFusion (CFUG) и всегда готовы протянуть руку или какое-нибудь обучение, чтобы помочь вам в этом. Также есть повсюду сообщества ColdFusion.

Вы всегда можете найти помощь в Центре разработчиков Macromedia для ColdFusion , а здесь, в SitePoint, также есть активное сообщество CF. Некоторые в настоящее время начинают предлагать классы ColdFusion и, конечно, есть много сайтов, предлагающих учебные материалы для ColdFusion и для сертификации ColdFusion.

Миф № 4. У ColdFusion нет возможности <вставить интересную функцию на другом языке>

Ложь! Мне еще предстоит найти то, что ASP, PHP или JSP могут сделать, а ColdFusion — нет. ColdFusion обладает всеми программными возможностями вышеупомянутых языков, а также более тесной интеграцией с другими технологиями Macromedia, такими как Flash или новый язык Flex.

Одна из самых больших особенностей ColdFusion над этими языками состоит в том, что большинство этих специальных функций встроено в ColdFusion. Возьмите график, например. С помощью простого запроса к базе данных и тега CFChart я могу создать гистограмму, линию, пирамиду, площадь, конус, кривую, цилиндр, шаг, точечную или круговую диаграмму в форматах Flash, JPG или PNG, и этот график может быть 3D или 2D ! Это средство предлагается из коробки с минимальной конфигурацией или без нее.

ColdFusion также имеет хуки для других веб-языков и объектов, таких как C / C ++, Java, COM, CORBA, XML, SOAP и многие другие! Вы никогда не ограничиваетесь программированием только в ColdFusion, благодаря всем этим хукам и API. Возьмите моего нынешнего работодателя, например. Их код на 99% состоит из Java, но, благодаря подключению ColdFusion к Java, я могу взять файл класса разработчика Java и использовать его в своем приложении, тем самым увеличивая повторное использование нашего кода. Это довольно привлекательно, если я сам так скажу.

Миф № 5: ColdFusion поощряет плохие практики программирования.

Ложь! ColdFusion предоставляет все строительные блоки, необходимые для разработки легко масштабируемого, модульного и обслуживаемого кода. ColdFusion не применяет какую-либо конкретную методологию разработки, но вместо этого фокусируется на выполнении работы. Многие программисты, начинающие с ColdFusion, обычно пишут не совсем идеальный код, но такие же проблемы можно найти в ASP или PHP.

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

Вот и все 5 лучших мифов о ColdFusion. Чтобы узнать больше вопросов и ответов, посетите сайт CFFAQ .

Преимущества ColdFusion

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

База Java

Как я упоминал ранее, ColdFusion Server построен с использованием Java и является приложением, проверенным Sun J2EE . Это означает, что вы можете развернуть и запустить ColdFusion и ваше приложение на самых разных серверах приложений, таких как Sun ONE, BEA, IBM WebSphere и многих других. Macromedia даже включает в себя полностью лицензированную копию JRUN 4 с выпуском Enterprise Edition ColdFusion.

Что это значит для среднего разработчика? Хорошо, допустим, вы создали действительно классное приложение и продали его большой компании, которая в следующие месяцы решит стандартизировать Java. Если у вас было приложение PHP или ASP, у вас могут быть большие проблемы и вы потеряете свой контракт, но с ColdFusion вы можете быть спокойны. Ваше приложение будет работать на их сервере приложений — оно даже будет взаимодействовать с их настоящим и будущим Java-кодом.

Ошибки и исправления ошибок

Еще одна большая проблема для разработчиков — отладка и получение сообщений об ошибках из их приложений. С ColdFusion вы можете перехватывать исключения и реагировать на них по своему усмотрению (как в Java), или вы можете разрешить серверу отображать сообщения об ошибках для пользователя. На панели администрирования ColdFusion вы можете установить уровень детализации ошибок, указать, какие IP-адреса могут видеть подробные ошибки, и даже настроить пользовательские страницы для обработки ошибок или отсутствующих шаблонов. При отладке ColdFusion вы получаете подробное сообщение об ошибке, в котором точно указывается, где находится ваша ошибка, какова была трассировка стека (порядок файлов, вызываемых до возникновения ошибки), а также указывается, в чем может быть проблема. Очень редко вы получите сообщение об ошибке, заставляющее вас больше думать и меньше отлаживать.

Помимо отличных сообщений об ошибках, вы также получаете множество отладочной информации. Когда я загружаю страницу ColdFusion в свою среду разработки, я вижу название своего приложения и шаблон, который я сейчас просматриваю. Я также вижу полную трассировку стека, которая включает время выполнения страницы и полный путь к этим страницам. Я вижу полный список всех моих переменных Application, CGI, Cookie, Server, Session, Form и URL. У меня очень мало причин печатать переменную, чтобы увидеть ее значение, когда я могу просто прокрутить свой браузер и получить полный отчет.

Компоненты ColdFusion — ХФУ

С выпуском ColdFusion MX компания Macromedia представила идею компонентов ColdFusion (также известных как CFC). Это большой скачок для ColdFusion и одна из самых популярных функций новой системы. См. ColdFusion Components, Введение для более подробной информации.

Одной из главных особенностей CFC является возможность документировать ваш код, не добавляя кучу тегов комментариев. Используя атрибут «подсказка» в ваших CFC-файлах и <cffunction>, вы можете сообщить будущим пользователям, что делает ваш CFC, что делают отдельные методы (также называемые функциями) и какие данные они принимают (вводят) и отображать (выводить). Затем вы можете перейти непосредственно к CFC, ввести свои учетные данные администратора и получить очень хороший вывод этой информации.

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

Я надеюсь, что к настоящему времени вы смотрите на ColdFusion в другом свете и рассматриваете его как предмет для дальнейшего изучения. Я настоятельно рекомендую вам загрузить копию Macromedia ColdFusion Server или New Atlanta Server и поэкспериментировать с ней. Я уверен, что с непредвзятостью и небольшим временем вы увидите ColdFusion как жизнеспособную альтернативу вашим текущим усилиям по веб-разработке. Если у вас есть какие-либо вопросы, пожалуйста, свяжитесь со мной напрямую или оставьте сообщение на форуме SitePoint.

Ресурсы

Для тех, кто готов вскочить и начать, вот несколько отличных ресурсов:

  • Macromedia ColdFusion — начните свое путешествие с загрузки различных версий сервера. Не забудьте взять версию для разработчиков, которая подходит для 1 IP-адреса.
  • Новый Atlanta Blue Dragon — найдите бесплатный сервер ColdFusion, а также альтернативы версиям Macromedia Standard и Enterprise.
  • Forta.com — этот парень — главный евангелист ColdFusion. Считай его крестным отцом ColdFusion. Бен Форта занимается ColdFusion и другим связанным с ним программированием уже много-много лет. Он написал много книг по различным темам ColdFusion и другим веб-технологиям и считается экспертом в своей области. На его сайте есть ссылки на его книги, советы, рекомендации, советы, ссылки на хостинг и веб-блог, где вы можете не отставать от него и ColdFusion.
  • MXNA — агрегатор новостей Macromedia XML является центральным пунктом для многих блогов, связанных с Macromedia, в Интернете. Здесь вы найдете блоги для ColdFusion, Dreamweaver, Flash и многих других тем для Macromedia. Это отличный центральный пункт для знаний Macromedia.
  • Блог и форумы SitePoint ColdFusion — вы никогда не ошибетесь ни с одним из ресурсов sitepoint.com, и эти два не являются исключением.