Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.10.2013, 12:28
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 1  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
Post О стиле написания кода

Встречалось, в общем, два типа написания кода в AS3.0.

Вариант 1, с отступами, например:

Код AS3:
private function removeText(e:Event)
		{
			if (infoPanel.contains(infoPanel.message_dtx))
			{
 
				trace("Removing text...");
				infoPanel.removeChild(infoPanel.message_dtx);
			}
			else
			{
				trace("Nothing to remove!");
			}
		}

Вариант 2, сжатый, например:
Код AS3:
private function removeText(e:Event){
			if (infoPanel.contains(infoPanel.message_dtx)){
 
				trace("Removing text...");
				infoPanel.removeChild(infoPanel.message_dtx);}
			else{
				trace("Nothing to remove!");}
		}
Мне, как новичку, первый кажется более понятным и эргономичным.
А второй - ненужной шифрованной непоняткой.

Однако, не редко, книги по AS3.0 написаны как раз во втором стиле.
А также многие продвинутые юзеры этого форума, тоже пишут во втором стиле.

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

Старый 07.10.2013, 12:36
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Первый называется стиль Олмана.
Вообще, я лично всегда использую второй, потому, что он менее громоздкий и удобочитаемый. Хотя тут какой-то корявый вариант. Закрывающая скобка в любом случае должна переноситься на следующую строку. Иначе все выглядит как каша.

Старый 07.10.2013, 12:39
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 3  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Первый вариант тоже кривой — зачем два лишних tab-а в теле метода?

Добавлено через 2 минуты
Код AS3:
private function removeText(e:Event):void // void забыл указать
{
	if (infoPanel.contains(infoPanel.message_dtx)) // это не гарантия того,
	{
		trace("Removing text...");
		infoPanel.removeChild(infoPanel.message_dtx); // что тут не вылетит ошибка в рантайме
	}
	else
	{
		trace("Nothing to remove!");
	}
}
__________________
Поймай яблоко 2!

Старый 07.10.2013, 12:59
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Или может с опытом приходит другое виденье кода, и стиль уже не важен
скорее, новички не думают о стиле; "с опытом" же начинаешь даже читать книги, посвященные исключительно стилю написания кода.
Цитата:
(а значит второй чуть проще, форматировать не надо).
В нормальных редакторах кода все настраивается и форматируется автоматически, да и сниппеты создаются сразу в нужном форматировании.
Нажмите на изображение для увеличения
Название: Клип_45.png
Просмотров: 101
Размер:	70.0 Кб
ID:	30084
__________________
Reality.getBounds(this);

Старый 07.10.2013, 13:09
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 5  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
Интересно, с чем это связано? Почему второй стиль существует, и зачем его использовать?
На самом деле, понятие "стиль" несколько шире понятия "язык программирования" и в определенном смысле выбор того или иного стиля определяется языком, его логикой и его конструкциями.

Я лично работаю в трех языка програмирования (AS3, серверный JS, PHP). На AS3 мне комфортно в первом варианте стиля, но если начинаешь писать также на JS, то очень быстро сталкиваешься с проблемой читаемости кода, там целесообразно придерживаться второго варианта, поскольку он существенно более компактен. Что же касается PHP, там оба стиля в чистом виде дискомфортны, поэтому там появляется некий симбиоз.

Но это сугубо имхо.

Старый 07.10.2013, 13:18
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 6  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
А мне кажется все ещё более просто - первый вариант, это настройки по умолчанию FD,FB.
А второй, это настройки по умолчанию CC.
Цитата:
но если начинаешь писать также на JS
Если не ошибаюсь, а я не ошибаюсь, просто не могу вспомнить, в JS если не писать как во втором примере,
то есть случай, когда будет ошибка.

Старый 07.10.2013, 14:48
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 7  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
All, в целом понятно, спасибо. Ну я писал варианты навскидку, поэтому оба кривоватые.

Zebestov, а если void поставить, то гарантия не-вылета в рантайме появляется?
Или надо еще что-то добавить?

Старый 07.10.2013, 14:56
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от Fogflasher Посмотреть сообщение
Или надо еще что-то добавить?
Скорее изменить.

Вместо такой проверки
Код AS3:
if (infoPanel.contains(infoPanel.message_dtx)) {}
в самом общем случае следует проверять так
Код AS3:
if (message_dtx.parent && message_dtx.parent == infoPanel) {}
потому что
Цитата:
Нижестоящие элементы второго, третьего и последующих уровней возвращают значение true.
Следовательно, нахождение message_dtx где-то в контейнере infoPanel — когда contains() вернет true — не гарантирует, что infoPanel является непосредственным родителем message_dtx.
__________________
Поймай яблоко 2!

Старый 07.10.2013, 15:32
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 9  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
Спасибо, идею понял.

Хотя у меня в таком виде ошибку выдает.
Цитата:
1120: Access of undefined property message_dtx.
Изменил вот так:
Код AS3:
if (infoPanel.message_dtx.parent && infoPanel.message_dtx.parent == infoPanel)
Так работает.

Старый 07.10.2013, 18:39
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 10  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Мне, как новичку, первый кажется более понятным и эргономичным.
А второй - ненужной шифрованной непоняткой.
Второй("египетский", "единственно верный") позволяет уместить больше строчек на экране.
Тут то как раз всё понятно, если бы большинство as3-проектов не было написано бы в стиле Олмана - я бы в египетском и писал.

Сложнее понять существование других стилей. Например авторы ShurikenMagic написали свою либо вообще без отступов, только с отбивкой пробелами по непонятным законам. И ничё - нормально работает, люди покупают, хотя зачем они так сделали - за граню понимания.

Египетский стиль обычно используют Java-программисты,
стиль со скобочкой на новой строке - С/C++/C# - программисты

Flex написан в стиле Олмана, большинство либ для as3 написано в этом же стиле. Так что для AS3 кодера выбора практически нет - пишем скобку на новой строке.

Update:
Невнимательно просмотрел, то что вы привели - это не египетский стиль, это действительно что-то страшное, я только один раз такое видел и то в левых исходниках, с которыми не надо было работать O_o,
А вот египетский стиль, который используют яверы, выглядит так:
Код AS3:
private function removeText(e:Event) {
    if (infoPanel.contains(infoPanel.message_dtx)) {
        trace("Removing text...");
        infoPanel.removeChild(infoPanel.message_dtx);
    } else {
        trace("Nothing to remove!");
    }
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
отступы , стиль кода , форматирование

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:10.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.