Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
надо все обсудить
Если бы такой метод прозрачно работал, им бы пользовались.
Эти инструменты превосходно подошли бы для подобной задачи, если бы она решалась.
Поэтому есть человек, более опытный чем остальные, которому и принадлежит решающий выбор.
Потеряются выравнвания (хотя с табами их использовать и не получится).
Потеряется пользовательское форматирование.
Появятся проблемы с длиной строк (с табами они всегда есть).
Потеряется история git.
Ради глупой нехотелки следовать стайлгайдам?
считаю, что нет всеобщего единого стиля, которого все должны придерживаться.
Код пишет человек. Он мог выровлять массив по разделителю, а мог не выровнять — такие вещи стайлгайдами не охватываются.
Вы предлагаете портить историю, делая реформат?
Нет. При использовании одного стиля люди не портят чужой код.
Только в одном проекте они не должны пересекаться.
Человек, который не способен усвоить стайлгайд, хороший код не напишет.
Вперед! Рекомендую начинать с создания ИИ.
Так же гиты/свн вроде пробелы не учитывают (может ошибаюсь конечно). И в них тоже можно внедрить данные инструкции. Что кстати и делается например с пробелами.
% hg help annotate
<…>
-w --ignore-all-space игнорировать пробельные символы при сравнении строк
-b --ignore-space-change игнорировать изменения в количестве пробельных
символов
-B --ignore-blank-lines игнорировать изменения, состоящие только из пустых
строк
<…>
Как вы думаете, что делают эти ключи в hg help annotate? Другой вопрос, что их нельзя использовать вместе с языками, где важны отступы. И такой возможности нет в git, bazaar и svn. И наверняка почти во всех остальных VCS. Против изменений «скобочек» эти ключи также не помогут.
int myFunc()
{
//...
}
Так, подавляющее большинство (86%) программистов C# открывают фигурную скобку на новой строке. В Java всё наоборот — лишь 19,8% придерживаются такого соглашения. Остальные используют «египетский» стиль.
void A::F() {
/* blah */
}
Нынче на хабре минусуют незнание?
Ок, не буду здесь ничего спрашивать.

var functionThatTakesTooManyAnguments = function(argument1, argument2, argument3, argument4, argument5, argument6);
var functionThatTakesTooManyAnguments = function(argument1, argument2, argument3, argument4,
argument5, argument6);
private static $_models=array(); // class name => model
private static $_md=array(); // class name => meta data
private $_new=false; // whether this instance is new or not
private $_attributes=array(); // attribute name => attribute value
private $_related=array(); // attribute name => related objects
private $_c; // query criteria (used by finder only)
private $_pk; // old primary key value
private $_alias='t'; // the table alias being used for query
public function raiseEvent($name,$event)
{
$name=strtolower($name);
if(isset($this->_e[$name]))
{
foreach($this->_e[$name] as $handler)
{
if(is_string($handler))
call_user_func($handler,$event);
elseif(is_callable($handler,true))
{
if(is_array($handler))
{
// an array: 0 - object, 1 - method name
list($object,$method)=$handler;
if(is_string($object)) // static method call
call_user_func($handler,$event);
elseif(method_exists($object,$method))
$object->$method($event);
else
throw new CException(Yii::t('yii','Event "{class}.{event}" is attached with an invalid handler "{handler}".',
array('{class}'=>get_class($this), '{event}'=>$name, '{handler}'=>$handler[1])));
// (...)
Опять же монитор позволяет побольше чем 80 симфолов вместить в строку, так что не вижу проблемы вообще.
var functionThatTakesTooManyAnguments = function(
argument1, argument2, argument3, argument4, argument5, argument6
);
Вы сами это ставите.
Какая такая неопределенность?
У меня это два пробела, а у ревьювера восемь и он зарубает мой код с причиной «нарушение code style convention», потому что у него строка вылазит за 80 символов, а у меня нет.
Если в стандарте сказано «при табах такой-то длины код должен вмещаться в такое-то количество столбцов», а у меня табы меньше и всё вмещается, то виноват, разумеется, я.
function FindTooLongLines()
if &textwidth == 0
return 0
endif
let saved_winview=winsaveview()
let saved_tabstop=&tabstop
let saved_lazyredraw=&lazyredraw
set tabstop=8 lazyredraw
let ret=0
let pattern=printf('\%%>%uv.*', &textwidth)
try
1
while search(pattern, 'We')
echohl ErrorMsg
echomsg printf('Line %u is too long: %s', line('.'), substitute(getline('.'), '^\s*', '', ''))
echohl None
let ret=1
endwhile
finally
let &tabstop=saved_tabstop
let &lazyredraw=saved_lazyredraw
call winrestview(saved_winview)
endtry
return ret
endfunction
autocmd BufWritePre * :if FindTooLongLines()|throw 'Too long lines found'|endif
Меня всегда удивляет количество сил, которое тратится на обсуждение такой незначительной темы, как отступов, выравнивания, пробелов, скобочек.
Финансовый комитет будет до хрипоты спорить о том, как потратить 100$ и легко согласится с выделением суммы в несколько миллионов.
class MyClass
{
const MY_CONST = '...';
public function fooBar($baz)
{
...
if ($baz) {
...
}
return ...;
}
}
Так, подавляющее большинство (86%) программистов C# открывают фигурную скобку на новой строке. В Java всё наоборот...Это как-то связано с настройками IDE по умлолчанию?
Какие стили оформления кода предпочитает аудитория Гитхаба?