Jump to content

Переменные кирилицей?


Николя223
 Share

Recommended Posts

Собственно, давно об этом знал, но сейчас задумался. И классы и переменные можно писать русскими символами, почему это не используют?

Если писать скрипты за рубеж - понятно, не надо. А вообще - так код более понятен будет...

Если я начну в своих проектах такой подход использовать (просто интерессно), есть ли какие то минусы?

Link to comment
Share on other sites

странный вопрос.

если это не минус - то я даже не знаю :)http://jsfiddle.net/Cath_kb/x3DT2/

UPD. Хотя преимущество есть. Использование кириллицы расширяет возможности, помогает бороться со стрессами и дает простор фантазии http://jsfiddle.net/Cath_kb/x3DT2/4/ :)

  • Like 1
Link to comment
Share on other sites

Хм... ) Если я правильно понял, то только проблема непонимания языкового написания букв)).. все таки проэксперементирую на какой либо работе .... почему бы и нет

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

попробую ещё на php

http://jsfiddle.net/x3DT2/8/

Edited by Николя223
Link to comment
Share on other sites

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

Есть у нас уже на просторах страны массовый продукт, в котором используется кириллица. И имеем мы от этого кучу 1С-специалистов без мозгов (backend-напарник достаточно показал ситуаций при экспорте данных из 1С в CMS, когда приходилось чуть ли не на пальцах объяснять для 1С-специалиста что тому надо сделать).

Edited by antonKar
Link to comment
Share on other sites

1С-специалиста что тому надо сделать

Вот тут ты не прав. У тебя стереотипное мышление.. Я знаю нескольких Специалистов из этой сферы, которые посмышленее многих). И зарабатывают на порядок больше.

кучу 1С-специалистов без мозгов
от использования латиницы мозговая масса не нарастет :) массу примеров могу привести)
Я сразу пошлю в задницу проект, в котором будут переменные на кириллице.
Тебе никто и не предлагает)) Edited by Николя223
  • Like 1
Link to comment
Share on other sites

1) Стереотипы просто так на ровном месте никогда не возникают. Кроме того, я сказал, что это всё на практике выявлено.

2) Если человек не осилил программирование на английском, то где гарантия, что он вообще осилит программирование?

3) А я и не прошу проект такой. Я намекаю, что поддержка такого проекта может быть несколько накладной.

Link to comment
Share on other sites

Если человек не осилил программирование на английском

Ну, а теперь подумай как себя чувствует те, для которых английский родной? :) я понятно намекаю)

Link to comment
Share on other sites

попробую ещё на php

:facepalmxd: А чего пробовать-то? Читаем документацию:

Variables in PHP are represented by a dollar sign followed by the name of the variable. The variable name is case-sensitive.

Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Note: For our purposes here, a letter is a-z, A-Z, and the bytes from 127 through 255 (0x7f-0xff).

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

Удобства в применении я категорически не вижу. Синтаксис PHP, HTML, CSS, JS (как, собственно, и большинство других языков) всё-равно построен на использовании латинских символов. Так что теперь, из-за каких-то языковых комплексов баловаться переключением раскладки клавиатуры? Не рационально.

UPD. Кстати, с кодировками проблем не предвидится?

Link to comment
Share on other sites

Может вы его готовить не умеете?

Одно только именование функций для работы с массивами вызывает желание стать Мизулиной и запретить свободное/открытое программное обеспечение.

А это означает, что визуально идентичные символы станут идеальным способом подпортить несколько часов времени на выявление ошибки.

Пример уже существующий: в имя переменной надо добавить «c», а ты, не посмотрев на раскладку, добавляешь «с».

А тут тебе с десяток символов, похожих друг на друга.

Edited by antonKar
Link to comment
Share on other sites

а ты, не посмотрев на раскладку, добавляешь «с».

У меня такой проблеммы не возникает. я всегда знаю, буквы какой расскладки я ввожу. :)

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

Пфф.. у меня в вузе отлично по английскому стояло :)

Катрин, но вот с твоим постом у меня идея родилась.. как все минусы в плюсы превратить Не буду оглашать пока что, надо все обдумать.

Link to comment
Share on other sites

Одно только именование функций для работы с массивами вызывает желание стать Мизулиной и запретить свободное/открытое программное обеспечение.

Ну так сделайте объект-обертку, назовите все функции кошерно и живите в мире со своей психикой...

Вы делаете акцент на чем-то, что не является нерешаемой проблемой.

Link to comment
Share on other sites

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

И не только кириллицы )) Сперто с хабра.

<?php

//も行ってみよう!

define
(
'真'
,
true
)
;

echo
;

//適応少し

define
(
'の'
,
true
)
;

define
(
'を返します'
,
false
)
;

$外側
=
"暖かい"
;

$温度計を示しています
=
;

$何
=
"まだ何もない"
;

if
(
$温度計を示しています
&&
$外側
==
"暖かい"
)
{

$何
=
"行くことができます"
;

}
else
{

$何
=
"ホームステイ"
;

}

echo
"本日 "
.
$外側
.
", 従って "
.
$何
;

$_COOKIES
[
'練乳'
]
=
"1кг"
;

$_COOKIES
[
'チョコレート'
]
=
"2кг"
;

$_COOKIES
[
'クラッカー'
]
=
"3кг"
;

$_
クッキー
=
$_COOKIES
;

//та-акс.. Проверим печеньки

echo
"<pre>"
;

print_r
(
$_
クッキー
)
;

echo
"</pre>"
;

//так работает

function
ロック機能
(
)
{

$変数
2
=
"это мегакруто
:)
"
;

return
$変数
2
;

}

function
ロック機能
2
(
$変数
)
{

$変数
2
=
"<br>Да, это "
.
$変数
.
", хотя и бесполезно"
;

return
$変数
2
;

}

$変数
=
"Кириллица в названиях переменных<br>"
;

echo
$変数
;

echo
$変数
2
=
ロック機能
(
)
;

echo
ロック機能
2
(
$変数
2
)
;

PS Если бы мне предложили поддерживать такой код, я бы отказался. И для человека не знающего русского языка думаю проблема будет тоже актуальной если код использует кириллицу. Но мне кажется категоричным тут быть не стоит, возможно найдутся места где это более удобно чем латиница.

Edited by wwt
  • Like 1
Link to comment
Share on other sites

Ребята, вы что-то начинаете слегка терять нить первоначального вопроса.

Да, технически можно во многих языках программирования\разметки использовать русские, китайские и т.п. символы. Но это не значит, что это нужно делать.

1. Английские символы во многих кодировках (а то и во всех) имеют идентичные ASCII-коды, поэтому таким образом мы получаем кросс-кодировочный исходник. С русскими символами так не получится, т.к. в utf-8 и в win1251 они имеют разные ASCII-коды. Это приводит к проблемам, что доказывают продукты 1С в руках безмозглых разработчиков (я не обобщаю, а только выделил категорию, таких).

2. Есть уже общепринятый, скажем так, стандарт, который всем понятен и все стараются поддерживать. Сегодня не нужно показывать код кому-то, а завтра это может быть востребовано. Для этого стоит придерживаться стандарта.

p.s. Перенес во Флейм, ибо эта тема явно не про js или какой-то другой конкретный язык, просто обсуждение. Всем добра ;)

  • Like 1
Link to comment
Share on other sites

в php имена переменных хранятся в бинарном виде, и что нельзя сделать явно можно сделать не явно


function hexToStr($hex)
{
$string='';
for ($i=0; $i < strlen($hex)-1; $i+=2)
{
$string .= chr(hexdec($hex[$i].$hex[$i+1]));
}
return $string;
}
$hex = '\x25\x29';// в php нельзя создать переменную с именем $%) , а используя hex код символов ASCII можно.
$$hex = '123';
echo $$hex; //вывод 123
echo '<br>';
echo hexTostr($hex); // вывод %)

2alexriz в том тои дело что в php не запрещено использовать названия переменных на кириллице к примеру, и это цитировали выше. А вот что общепринято это да и тут не поспоришь. Но ведь если очень хочется то можно )) И будет работать, особенно если в проекте использовать одну кодировку и придерживаться её.

Link to comment
Share on other sites

Ну так сделайте объект-обертку, назовите все функции кошерно и живите в мире со своей психикой...

То есть чтобы с PHP можно было нормально жить нужно городить костыли? Фи какая гадость.

Link to comment
Share on other sites

То есть чтобы с PHP можно было нормально жить нужно городить костыли? Фи какая гадость.

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

Возьмем доку по python'у, те же массивы. И мы видим, что ад с именованием методов есть и у кошерного питончика. Одновременно используется слитное написание имен методов и через нижнее подчеркивание: array.buffer_info() и тут же array.fromfile(f, n) . Заглядываем по-соседству и видим string.ascii_lowercase, string.octdigits. Фи, какая гадость....

  • Like 1
Link to comment
Share on other sites

Не думаю что стоит переходить на кириллицу, хотя бы потому что когда пишешь код на английском ты черпаешь и автоматом запоминаешь перевод слов, или я 1 как дурак пользуюсь переводчиком?

Link to comment
Share on other sites

Если я начну в своих проектах такой подход

то будешь сам поддерживать свои проекты ) гарантированно :rofl:

странный вопрос

школьный вопрос )))

неплохо запутать человека

http://learn.javascr...ite-unmain-code

Edited by nerv
Link to comment
Share on other sites

А с функциями у него как дела обстоят? Мы же про них говорим.

А что с функциями? Их там пять десятков всего. Методы объекта абсолютно равняются функциям php. Не вижу между ними особой разницы

Link to comment
Share on other sites

Дочитал до:

Обратите внимание на оператор вопросительный знак '?', например:

// код из jQuery

i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;

Разработчик, встретивший эту строку и попытавшийся понять, чему же всё-таки равно i, скорее всего придёт к вам за разъяснениями. Смело скажите ему, что короче — это всегда лучше. Посвятите и его в пути ниндзя. Не забудьте вручить Дао дэ цзин.

Елементарщина. Вложенный тернарный оператор сравнения.Разработчик видать начинающий либо вовсе не разработчик.


if(i){
if(i<0){
i = Math.max( 0, len + i );
}
}else{
i = 0;
}

Link to comment
Share on other sites

то будешь сам поддерживать свои проекты ) гарантированно

Но но ) я в отпуске. У меня есть одна идейка на этот счет)) вернусь на работу начну реализовывать)) а пока - сарказм, так сарказм)

Link to comment
Share on other sites

Нет, ну можно кончено. Люди и на brainfuck'e пишут, но высплывающие проблемы затмевают любые преимущества.

А кодировка не та?

А если другой редактор для кода взять как отобразится?

А библиотеку внешнюю прикрутить?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Обсуждения

    • Вы отучились на бухгалтера или программиста? Почему спрашиваю. Я финансист, бухгалтер. Естественно, в свое время отучился на курсах 1С, но как экономист. Поэтому могу помочь с развитием именно в этом направлении, так как опыт огромный. 
    • Всем привет.Не так давно начал изучать верстку.И кароче захотел создать слайдер на основе html css без js. Застрял булеты работают и стрелки также но только стрелки становяться видимы когда первый раз нажал на булет.До этого их никак немогу настроить.   <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title>     <style>         .wrapper{             width: 700px;             height: 400px;             margin:0 auto;             border:5px solid green;             border-radius: 20px;             overflow: hidden;             position: relative;         }         .container{             width: 600px;             height: 300px;             border: 5px solid green;             border-radius: 20px;             margin: 20px auto;         }         .slider__items{             display: none;         }         .bullets{             display: flex;             position: absolute;             left:100px;             bottom:30px;         }         .bullets__items{             width: 50px;             height: 15px;             border:2px solid green;             border-radius: 20px;             background-color: lightgreen;             margin: 0 20px;         }             .images{             display: flex;         }         .images__items{             width: 600px;             height: 300px;             border-radius: 20px;             margin-right: 55px;         }               .arrows__prev{             background-image: url(./img/next.png);             background-size: contain;             width: 40px;             height: 40px;             position: absolute;             top:150px;             left: 2px;         }         #slide1:checked ~ .images .image1{             margin-left: 0;         }         #slide2:checked ~ .images .image2{             margin-left: -655px;         }         #slide3:checked ~ .images .image3{             margin-left: -1310px;         }         #slide4:checked ~ .images .image4{             margin-left: -1965px;         }         #slide5:checked ~ .images .image5{             margin-left: -2620px;         }         #slide1:checked ~ .arrow__next .img2,         #slide2:checked ~ .arrow__next .img3,         #slide3:checked ~ .arrow__next .img4,         #slide4:checked ~ .arrow__next .img5,         #slide5:checked ~ .arrow__next .img1{             display: block;             background-image: url(./img/next.png);             background-size: contain;             width: 40px;             height: 40px;             position: absolute;             top:150px;             right: 2px;                 }         #slide1:checked ~ .arrow__prev .img5,         #slide2:checked ~ .arrow__prev .img1,         #slide3:checked ~ .arrow__prev .img2,         #slide4:checked ~ .arrow__prev .img3,         #slide5:checked ~ .arrow__prev .img4         {             display: block;             background-image: url(./img/prev.png);             background-size: contain;             width: 40px;             height: 40px;             position: absolute;             top:150px;             left: 2px;                 }     </style> </head> <body>     <div class="wrapper">         <div class="container">             <div class="slider">                 <input type="radio" name="slider" class="slider__items" id="slide1">                 <input type="radio" name="slider" class="slider__items" id="slide2">                 <input type="radio" name="slider" class="slider__items" id="slide3">                 <input type="radio" name="slider" class="slider__items" id="slide4">                 <input type="radio" name="slider" class="slider__items" id="slide5">                                 <div class="bullets">                     <label for="slide1" class="bullets__items"></label>                     <label for="slide2" class="bullets__items"></label>                     <label for="slide3" class="bullets__items"></label>                     <label for="slide4" class="bullets__items"></label>                     <label for="slide5" class="bullets__items"></label>                 </div>                 <div class="arrow__next">                     <label for="slide1" class="arrows__item img1"></label>                     <label for="slide2" class="arrows__item img2"></label>                     <label for="slide3" class="arrows__item img3"></label>                     <label for="slide4" class="arrows__item img4"></label>                     <label for="slide5" class="arrows__item img5"></label>                 </div>                 <div class="arrow__prev">                     <label for="slide1" class="arrows__item img1"></label>                     <label for="slide2" class="arrows__item img2"></label>                     <label for="slide3" class="arrows__item img3"></label>                     <label for="slide4" class="arrows__item img4"></label>                     <label for="slide5" class="arrows__item img5"></label>                 </div>                 <div class="images">                     <img src="./img/1.jpg" alt="" class="images__items image1">                     <img src="./img/2.jpg" alt="" class="images__items image2">                     <img src="./img/3.jpg" alt="" class="images__items image3">                     <img src="./img/4.jpg" alt="" class="images__items image4">                     <img src="./img/5.jpg" alt="" class="images__items image5">                 </div>             </div>         </div>     </div> </body> </html>
    • Актуально, до сих пор актуально. Много кричали, что SEO умирает и умерло. Ничего подобного, СЕО живее всех живых и по-прежнему работает. 
    • Мне нужен такой результат : Не понимаю почему background не применяется вокруг иконок:   Сам код: Html: css: Html: <section class="finish"> <div class="container"> <h2 class="finish_header">По окончании обучения Вы сможете!</h2> <div class="finish_divider"></div> <div class="finish_wrapper"> <finish_item> <div class="finish_round"> <img src="/icons/finish/1 (1).png" alt="" class="finish_icon"> </div> <div class="finish_descr">Создать свой сайт или блог</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/2.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Создать свой сайт или блог</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/3.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Обеспечить ему медленный, но верный рост в ТОП</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/4.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Достигнуть стабильного прироста посетителей</div> </finish_item> <finish_item> <div class="finish_round"> <img src="/icons/finish/5.png" alt="" class="finish_icon"> </div> <div class="finish_descr">Достигнуть стабильного прироста посетителей</div> </finish_item> </div> </div> </section>   Css: .finish .finish_wrapper { margin-top: 41px; display: flex; justify-content: space-between; } .finish .finish_wrapper .finish_item { width: 204px; } .finish .finish_wrapper .finish_item .finish_round { width: 115px; height: 115px; background-color: #b4e2ff; border-radius: 8px; } .finish_descr { font-family: Roboto; font-size: 17px; line-height: 20px; font-weight: 300; color: #efefef; Спасибо!   Уже решил, спасибо! У меня CSS селектор вида:.finish .finish_wrapper .finish_item .finish_roundА должен быть:.finish .finish_wrapper finish_item .finish_roundТ.е. без точки перед finish_item, так как это не класс, а элемент
    • Есть вопрос по макету. (psd) Макет более 80мб. На форуме не выложишь. Где лучче залить файл и выложить ссылку на него? (Гугл диск подойдет?) Может у кого, знающего найдется 10 минут, чтоб ответить на вопрос по верстке?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy