Как стать автором
Обновить

All You Need Is Java: анонс JUG.EKB #18

Время на прочтение 3 мин
Количество просмотров 857
Блог компании Naumen Java *Конференции

12 мая пройдет митап сообщества JUG.EKB. Присоединиться можно в формате онлайн или офлайн.

В программе встречи два доклада, где спикеры расскажут, какие боли лечит ниспадающее программирование и проведут экскурсию по Интернету вещей. 

Митап бесплатный, вдохновлен любовью к Java и подготовлен разработчиками NAUMEN.

Читать далее
Рейтинг 0
Комментарии 2

Бесплатный e-book по Ruby

Время на прочтение 1 мин
Количество просмотров 2.3K
Чулан
Задумывались об изучении объектно-ориентированного программирования, а в частности языка Ruby? С бесплатной книгой жизнь станет легче.

LifeHacker опубликовал небольшую заметку о бесплатной книге, доступной в онлайн или для скачивания (pdf) для тех, кто начинает изучать Ruby.

Книга в легкой и юмористической форме вводит в мир Ruby. Нулевая глава озаглавлена просто и без изысков: «О чем эт вы, мистер?».

В комментариях на LifeHacker посетители вспомнили еще о двух книгах:
Всего голосов 24: ↑20 и ↓4 +16
Комментарии 12

Бесплатный e-book по Ruby

Время на прочтение 1 мин
Количество просмотров 745
Чулан
LifeHacker опубликовал небольшую заметку о бесплатной книге, доступной в онлайн или для скачивания (pdf) для тех, кто начинает изучать Ruby.
Книга в легкой и юмористической форме вводит в мир Ruby. Нулевая глава озаглавлена просто и без изысков: " О чем эт вы, мистер?"
В комментариях на LifeHacker посетители вспомнили еще о двух книгах:

Всего голосов 2: ↑1 и ↓1 0
Комментарии 2

Мысли вслух. ООП

Время на прочтение 1 мин
Количество просмотров 1.3K
Чулан
В очередной раз спорил о смысле ООП в вебе.
Я никогда не понимал зачем объявлять объекты, описывать их. Пользоваться всеми прелястями Полиморфизма объекта при выборе наилучшего решения проблемы, наследовать родительские параметры итп итд…
только для того, чтобы сгенерить 2 килобайта текста в виде html тегов.
Как писал один замечательный автор в книге «Оптимизация web-сервера», цитирую:
«ООП в вебе с легкостью справляется со своей главной задачей — максимально нагрузить сервер ненужными действиями»
Всего голосов 15: ↑5 и ↓10 -5
Комментарии 128

ООП и всё такое: Тихо, про себя

Время на прочтение 1 мин
Количество просмотров 2K
Чулан
Я стараюсь не спорить о преимуществах / недостатках ООП или процедурного подхода, безразлично где.

Хочешь — рассматривай программу как множество функций. Хочешь — как множество объектов. Хочешь — вообще заморочься на аспектах. А ещё есть товарищ Шалыто и его конечные автоматы. Дело-то хозяйское.

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

Также, очень важно чётко определить цели твоей программы — от этого зависит, какая парадигма подойдёт. Если тебя волнует расширяемость — что ж, видимо тебе придётся познакомиться с ООП. Если скорость — то процедурный подход. Важно избежать фанатичной помешанности на одной парадигме.

После определения, в любом случае, не стоит забывать про рефакторинг (тут выскакивает Мартин Фаулер, и кричит — Нюхай свой код! Определяй запахи!). Больше всего рефакторинга в ООП, но и функции тоже можно рефакторить.

Дальше — больше: вспоминаются паттерны, которые представляют собой шаблонные методы обхода насущных проблем языка и решения архитектурных заморочек. Где паттерны — там GOF и Фаулер с POEAA. Затем всплывает TDD, с его написанием тестов перед написанием кода. Дальше — ещё больше, там будут горы непонятных аббревиатур и леса методологий.

На подобные темы писалось, пишется и будет писаться много.

Но нет серебряной пули.
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 30

Ленивые свойства объекта

Время на прочтение 2 мин
Количество просмотров 1.7K
Проектирование и рефакторинг *
Возможно, не самый умный экземпляр для линча, но хотелось с чего-нибудь начать)

Для красоты кода и удобства написания модулей, реализовал классы по работе с отдельными информационными сущностями. К примеру, такая вещь как язык интерфейса имеет свой ID, и для большинства операций этой информации вполне достаточно. В то же время, возникают редкие ситуации, когда требуется получить дополнительные сведения о нём (RFC-код, к примеру, узнать который можно, обратившись к отдельной таблице или файлу). Не особо задумываясь, поставил инициализацию переменных в конструктор класса… Проблемы начались, когда переехал на машину с тормозящим SQL-сервером (очень полезное занятие, как оказалось) – тестовая машина падала в таймаут при совершенно безобидных операциях. Не комильфо – процессорное время и SQL-соединения хотелось бы использовать более рационально :) Но использовать специальные методы для подгрузки вроде Fill() тоже не особо хотелось. В итоге пришел к наиболее простому (на мой взгляд) решению из доступных
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 42

Предисловие, первые шаги

Время на прочтение 1 мин
Количество просмотров 5K
Ruby *
Ruby— один из самых молодых языков, но в Японии уже успел потеснить, таких гигантов как Python и Perl. Ruby работает на многих платформах, таких как Linux, многие реализации Unix, Windows 9x/2000/NT, MacOS и многие другие.

Ruby
Ruby, получил своё название благодаря драгоценному камню— Рубину.

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

Книга Ruby the Object-Oriented Scripting Language, сразу после выхода стала бестселлером. За последние годы появилось множество книг по Ruby, к сожалению, не имеющие русского перевода.

Скачать Ruby для Windows, можно например здесь: One-Click Installer


Начнем с простого!
Читать дальше →
Всего голосов 73: ↑56 и ↓17 +39
Комментарии 72

Объекты и методы

Время на прочтение 3 мин
Количество просмотров 5.2K
Ruby *
Ruby— Объектно- ориентированный язык.


Как и в других Объектно— ориентированных языках, всё, с чем работает программа является объектом.
Каждый объект является экземпляром некоторого класса и функциональность объекта определяется именно классом.
Все объекты, которые являются экземплярами одного класса, могут выполнять одни и теже действия называемые методами.
Для того, чтобы применить метод к объекту, достаточно, после указания объекта поставить «.» (точку), а затем указать метод

Продолжим!
Читать дальше →
Всего голосов 54: ↑44 и ↓10 +34
Комментарии 67

Установка

Время на прочтение 1 мин
Количество просмотров 1.6K
Ruby *
Это небольшая статья для тех, кто испытал, какие- либо трудности с установкой Ruby.



Для начала, не плохо было бы скачать дистрибутив Ruby, например— отсюда

Дальше всё просто, не даром это One-Click Installer.

Приступим!
Читать дальше →
Всего голосов 30: ↑18 и ↓12 +6
Комментарии 15

Массивы в Ruby

Время на прочтение 1 мин
Количество просмотров 9.8K
Ruby *
Работа с массивами — одна из сильных сторон Руби. Они автоматически изменяют размер, могут содержать любые элементы и язык предоставляет мощные средства для их обработки.



Массив в Ruby— это экземпляр класса Array

Чтобы создать пустой массив в Ruby можно воспользоваться одной из двух следующих конструкций:
a = [ ]
b = Array.new


Если требуется создать пустой массив определенного размера, то следует указать его размер в качестве аргумента метода new.
myArray = Array.new(10)


Можно также указать, объекты каких классов будут храниться в данном массиве:
habraArray = Array.new(3, Habr)
p habraArray #[Habr, Habr, Habr]


Дальше интереснее!
Читать дальше →
Рейтинг 0
Комментарии 0

Как правильно объяснить начинающему php-программисту зачем, как и когда использовать ООП?

Время на прочтение 1 мин
Количество просмотров 8.5K
PHP *
Разумеется, вопрос актуален, если, на Ваш взгляд, вообще начинающему веб-программисту следует использовать ООП.

А то ведь начать писать какие-то базовые скрипты на php — не сложно. Но если изначально заниматься этим безграмотно, то формируются очень нехорошие убеждения и навыки, избавляться от них потом и приобретать другие очень утомительно.
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 35

SPOJ.PL — Пробуем свои силы!

Время на прочтение 1 мин
Количество просмотров 1.6K
Ruby *
Sphere Online Judge


Предлагаю вашему вниманию польский сайт с традиционными задачками по программированию— SPOJ.PL
Зарегистрировавшись на нем, вы сможете решать задачи, почти на любом известном вам языке программирования, в том числе и на Ruby.

Регистрируйтесь и переходите к тестовой задачке.

Разберемся, что к чему!
Всего голосов 11: ↑8 и ↓3 +5
Комментарии 0

Методы в JavaScript

Время на прочтение 4 мин
Количество просмотров 38K
Разработка веб-сайтов *
Когда-нибудь каждый JavaScript-программист осознаёт, что JS — объектно-ориентированный язык. И здесь его подстерегают некоторые опасности, происходящие от непонимания того факта, что JS — язык не классов (как Паскаль или Цэ-два-креста), а прототипов.
Так, уже многое написано о проблеме наследования (котого в JS нет). Я же постараюсь рассказать о менее освещённом, но едва ли не более важном подводном камне: грамотной реализации методов.
Программисты пытаются объявлять классы в привычной для них форме, из-за чего возникают утечки памяти и прочие неприятные вещи. На самом деле нужно всего лишь научиться использовать прототипы.
Эта статья предназначена прежде всего для начинающих JS-программистов.
Читать дальше →
Всего голосов 42: ↑37 и ↓5 +32
Комментарии 97

Интернет-магазин. «Разделяй и властвуй» или «ОО уже и тут»

Время на прочтение 2 мин
Количество просмотров 4.5K
Чулан
А почему бы вам, коллеги, не приобщиться к интернет-магазинству?
Страшно? То-то же, и мне страшно. И здесь мы поговорим о том как побороть свои страхи. С помощью… объектно-ориентированного подхода.
Читать дальше →
Всего голосов 6: ↑3 и ↓3 0
Комментарии 20

Объекты в JavaScript

Время на прочтение 4 мин
Количество просмотров 2K
Чулан
JavaScript предоставляет массу способов использовать объектно-ориентированное программирование. Для этого существуют следующие приёмы:
  • Оператор new
  • Литеральная нотация
  • Конструкторы объектов
  • Прототипы
  • Ассоциативные массивы

Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 11

Классы, объекты и наследование в JavaScript

Время на прочтение 17 мин
Количество просмотров 24K
JavaScript *Программирование *
Недавно в офисе Хабра я хотел прочитать своим коллегам небольшой доклад об объектной ориентации и наследовании классов в JavaScript.

Дело в том, что в свое время я был в полном восторге, научившись создавать свои собственные объекты и выстраивать цепочки наследования, и решил, что называется, поделиться с другими своими находками и наблюдениями. (=

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

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

Весь текст подеён на 5 разделов:
  1. ООП в Java Script (1/5): Объекты
  2. ООП в Java Script (2/5): Классы
  3. ООП в Java Script (3/5): Свойства и методы класса
  4. ООП в Java Script (4/5): Наследование классов
  5. ООП в Java Script (5/5): Полезные ссылки

Читать дальше →
Всего голосов 25: ↑21 и ↓4 +17
Комментарии 54

ECMAScript4: обзор нового стандарта, фундамента JavaScript2

Время на прочтение 1 мин
Количество просмотров 598
Чулан
В обновленном стандарте сетевого языка ECMAScript4 (ES4) учтены требования, возникшие при разработке все более крупных AJAX-, Flash и Flex-проектов. При этом одним из условий стандарта ES4 является совместимость с предыдущим стандартом, ES3.

Ссылки:
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 11

PHP и ООП. Совмещаем \«несовмещаемое\»…

Время на прочтение 4 мин
Количество просмотров 3.9K
PHP *
Объектно-ориентированное программирование — как стиль жизни. Это не просто применение конструкций типа class или interface — это способ мышления, когда любая сущность программы является не просто набором инструкций, а представляет из себя \«живое\» существо…

Думаю напоминать что такое ООП, в рамках данной статьи, будет лишним, посему перейду сразу к проблематике вопроса.

Разработчики, пришедшие в PHP из других языков программирования, и столкнувшиеся в нем (в РНР. тут и далее буду подразумевать РНР5 — прим.) с классами, недоумевают как их вообще возможно использовать. А все из-за того, что время жизни скрипта на РНР гораздо меньше, чем у прикладного ПО и составляет всего один цикл работы, в то время как прикладное ПО может жить и взаимодействовать со своими компонентами много дольше. В итоге миру является код, в котором классы реализуют всего-навсего отсутствующие в РНР namespaces.
Читать дальше →
Всего голосов 22: ↑16 и ↓6 +10
Комментарии 62

Методы доступа. Наиболее популярные ситуации

Время на прочтение 3 мин
Количество просмотров 32K
PHP *
Статья в первую очередь расчитана на начинающих разработчиков, либо для тех, кто только начинает переходить от процедурного стиля программирования к ООП, посему матерых гуру просьба не вгонять в минуса :)

Права доступа к свойствам и методам — это на первый взгляд всего лишь три слова: private, protected и public. Но что скрывается за ними? Какие преимущества это дает в разработке? И как их правильно использовать? Здесь, как и во всех других аспектах программирования, без практики не разобраться…

Одна из трех основных концепций ООП — наследование (другие две: инкапсуляция и полиморфизм). Вобщем-то именно для нее и были реализованы права доступов. Основанная идея наследования: Дочерний объект, при наследовании (extend) родителя перенимает себе все родительские методы и свойства, а так же может обзавестись своими собственными. Понимая эту базу, можно перейти в всему что находится ниже…
Читать дальше →
Всего голосов 15: ↑9 и ↓6 +3
Комментарии 51

try… catch VS if…else. Что, когда и почему?

Время на прочтение 5 мин
Количество просмотров 86K
PHP *
Данная статья расчитана для двух типов разработчиков:
— кто еще не знаком с исключениями
— кто пытается найти более разумное использование исключениям

В статье я расскажу о самых основах исключений, о том как можно обходиться без них, а так же о том, как я вижу правильным использование некоторых возможностей языка…

Эволюция языков программирования приводит иногда к кардинальным изменениям в мировоззрении разработчиков. В мире РНР такое случилось при появлении пятой ветки, которая принесла новую объектную модель, новые наборы встроенных функций и новые методы обработки ошибок…

Те, кто начинал знакомиться с PHP (тут и далее я буду подразумевать пятую версию), после другого процедурного языка программирования, так и не поняли что же такого в переходе от 4ки к 5ке и продолжают оформлять код привычными функциями, которые находятся на одном уровне по отношению друг к другу, а так же каждое действие проверяют на удачный код возврата. Но те кто знали об исключениях и классах…
Читать дальше →
Всего голосов 25: ↑20 и ↓5 +15
Комментарии 65