Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 17.11.2013, 20:32
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

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

Сообщение от Gozar
В Erlang нельзя изменять значение переменной, не ясно какое отношение это имеет к типам?
Ну это так к слову
Ответить с цитированием
  #22 (permalink)  
Старый 17.11.2013, 21:24
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от monolithed Посмотреть сообщение
Я его еще использую как статический анализатор, т.е. если функция ожидат принять строку, а передается число, то выдается ошибка.
У меня это вебшторм делает
__________________
kobezzza
code monkey
Ответить с цитированием
  #23 (permalink)  
Старый 17.11.2013, 22:13
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Gozar
Не пора закончить этот затянувшийся разговор про ангуляр?
может быть

kobezzza, спасибо за ссылку.

Сообщение от monolithed
Я его еще использую как статический анализатор, т.е. если функция ожидат принять строку, а передается число, то выдается ошибка.
Сообщение от kobezzza
У меня это вебшторм делает
а можно напримере? Вот я по ссылке, кот. ты выше привел копирую кусок кода
/**
 * A shape.
 * @interface
 */
function Shape() {};
Shape.prototype.draw = function() {};

и делаю так
var obj = new Shape();
*!*
obj.paint();
*/!*

и хочу, чтобы в строчке отмеченной красным мне IDEшка ошибку бросала (не запуская код, разумеется). Это возможно?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #24 (permalink)  
Старый 17.11.2013, 22:28
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от nerv_ Посмотреть сообщение
может быть

kobezzza, спасибо за ссылку.



а можно напримере? Вот я по ссылке, кот. ты выше привел копирую кусок кода
/**
 * A shape.
 * @interface
 */
function Shape() {};
Shape.prototype.draw = function() {};

и делаю так
var obj = new Shape();
*!*
obj.paint();
*/!*

и хочу, чтобы в строчке отмеченной красным мне IDEшка ошибку бросала (не запуская код, разумеется). Это возможно?
Разумеется.


Используя JSDoc ты получаешь полноценную поддержку IDE, как скажем при использовании Java.
__________________
kobezzza
code monkey
Ответить с цитированием
  #25 (permalink)  
Старый 18.11.2013, 00:08
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от kobezzza
У меня это вебшторм делает
В большом проекте это не вариант, да и не заставишь всех перейти на какой-то редактор.
Да я и сам часто пишу код в vim'e

Сообщение от nerv_
а можно напримере?
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// ==/ClosureCompiler==

/** @param {string} string */
function hello(string) {
    return string
}

hello(1);

Будет получено предупреждение:
Number of warnings: 1

JSC_TYPE_MISMATCH: actual parameter 1 of hello does not match formal parameter
found   : number
required: string at line 6 character 6
hello(1);

В моем случае будет ошибка, а не ворнинг и коммит не пройдет .

Протестить можно тут http://closure-compiler.appspot.com/
Список опций тут http://code.google.com/p/closure-compiler/wiki/Warnings

Мой конфиг:

#! /usr/bin/env sh

# Google closure compiler
# [url]http://code.google.com/p/closure-compiler/wiki/Warnings[/url]

# --compilation_level
# WHITESPACE_ONLY | SIMPLE_OPTIMIZATIONS | ADVANCED_OPTIMIZATIONS

# --compilation_level
# QUIET | DEFAULT | VERBOSE


timestamp=debug # `date +%s`

compiler=../tools/google/closure-compiler/build/compiler.jar
output=../cache/static/__init__

java -jar ${compiler} \
	--js="${output}.js" \
	--externs=../trunk/__slot__.js \
	--js_output_file="${output}.${timestamp}.js" \
	--create_source_map="${output}.${timestamp}.json" \
	--warning_level=QUIET \
	--summary_detail_level=3 \
	--charset=UTF-8 \
	--language_in=ECMASCRIPT5_STRICT \
	--compilation_level=SIMPLE_OPTIMIZATIONS \
	--formatting=SINGLE_QUOTES \
	--jscomp_error=ambiguousFunctionDecl \
	--jscomp_error=checkDebuggerStatement \
	--jscomp_error=checkRegExp \
	--jscomp_error=checkVars \
	--jscomp_error=const \
	--jscomp_error=constantProperty \
	--jscomp_error=es5Strict \
	--jscomp_error=internetExplorerChecks \
	--jscomp_error=invalidCasts \
	--jscomp_error=missingProperties \
	--jscomp_error=suspiciousCode \
	--jscomp_warning=undefinedNames \
	--jscomp_error=undefinedVars \
	--jscomp_warning=uselessCode \
	--jscomp_warning=externsValidation \
	--jscomp_warning=duplicate \
	--jscomp_warning=deprecated \
	--jscomp_warning=accessControls \
	--jscomp_warning=visibility \
	--jscomp_warning=checkTypes \
	--jscomp_warning=fileoverviewTags \
	--jscomp_warning=nonStandardJsDocs \
	--jscomp_warning=strictModuleDepCheck \
	--jscomp_warning=unknownDefines \
#	--jscomp_warning=globalThis \
#	--source_map_format=DEFAULT \
#	--use_types_for_optimization \
#	--create_name_map_files=true \
#	--print_ast \
#	--print_pass_graph \
#	--print_tree \

Последний раз редактировалось monolithed, 18.11.2013 в 00:14.
Ответить с цитированием
  #26 (permalink)  
Старый 18.11.2013, 08:29
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от monolithed Посмотреть сообщение
В большом проекте это не вариант, да и не заставишь всех перейти на какой-то редактор.
Да я и сам часто пишу код в vim'e
Ну выбор редактора - это личное дело каждого Но так или иначе у меня также проводится анализ на этапе сборки и выкладки: jshint (пробовал также Closure Linter, но он какой то кривой) + gcc.


Сообщение от monolithed Посмотреть сообщение
В моем случае будет ошибка, а не ворнинг и коммит не пройдет.
Ну кстати в WebStorm когда делаешь комит, то он ещё раз алертом выводит о всех варнингах и ошибках, а также комментариев todo. Ну и конечно бывает, когда варнинг сделан осмысленно

__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 18.11.2013 в 09:46.
Ответить с цитированием
  #27 (permalink)  
Старый 20.11.2013, 15:29
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

kobezzza, monolithed,
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #28 (permalink)  
Старый 20.11.2013, 21:49
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Gozar
Не пора закончить этот затянувшийся разговор про ангуляр?
Сообщение от nerv_
может быть
вы обсуждали angularjs без меня? Я требую продолжения
Ответить с цитированием
  #29 (permalink)  
Старый 20.11.2013, 23:04
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

x-yuri, целая ветка форума есть под него
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #30 (permalink)  
Старый 20.11.2013, 23:36
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Целая ветка форума это конечно круто, но зачем она мне, если вы и так уже все тут собрались ну или почти все...

p.s. пишу из убунты, если что
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как писать код который легко поддерживать, расширять, читать. Policeman Общие вопросы Javascript 3 24.03.2012 05:40
как писать правильные SQL запросы? Vuzy Серверные языки и технологии 8 16.07.2011 01:30
Как писать в cookie по-русски? Бобр Общие вопросы Javascript 1 21.03.2010 07:53
Как правильно писать классы с использованием jQuery? Tpona jQuery 7 13.10.2009 15:16
Как писать скрипты под Opera? ucsus (X)HTML/CSS 2 15.04.2009 13:07