Журнал LinuxFormat - перейти на главную

LXF165-166:Про­грам­ми­ро­вание: Geany

Материал из Linuxformat
Перейти к: навигация, поиск

Про­грам­ми­ро­ва­ние Пиши­те классные Linux-при­ло­же­ния в этом мно­го­гран­но­м ре­дак­то­ре

Содержание

Geany: Пи­шем код

Спус­тя го­ды по­ис­ков иде­аль­но­го ре­дак­то­ра для про­грам­ми­ро­ва­ния, Джо­но Бэ­кон уве­ро­вал, что, воз­мож­но, на­ко­нец-то он на­брел на зо­ло­тую жи­лу...

На­пи­сание ко­да – вещь глу­бо­ко лич­ная. У ка­ж­до­го есть свои лю­би­мые ин­ст­ру­мен­ты, тех­но­ло­гии и под­хо­ды к то­му, как же на­пи­сать пре­восход­ный код, ко­то­рый обес­пе­чит вы­даю­щую­ся функ­цио­наль­ность. Сотни книг бы­ли на­пи­са­ны о раз­ных ас­пек­тах Дзен на­пи­сания ко­да, и я здесь яв­но не для то­го, что­бы по­ве­дать вам о том, что имен­но мой ва­ри­ант яв­ля­ет­ся са­мым луч­шим.

Клю­че­вым мо­мен­том в этих спо­рах яв­ля­ет­ся то, нуж­но ли ис­поль­зо­вать в ка­че­­ст­ве ок­на в ваш код IDE или ре­дак­тор. Лю­бо­пыт­но, что мно­гие сто­ронники IDE час­тень­ко яв­ля­ют­ся на­чи­наю­щи­ми или не очень опыт­ны­ми про­грам­ми­ста­ми, ко­то­рые счи­та­ют, что имен­но IDE крайне важ­ны для снижения план­ки на­пи­сания при­ло­жений; а мно­гие умуд­рен­ные жиз­нью ха­ке­ры пред­по­чи­та­ют ре­дак­тор, да­бы из­бе­жать вся­кой ненуж­ной ерун­ды и сра­зу при­сту­пить к де­лу. Ес­ли го­во­рить о мо­их пред­поч­тениях, я ви­жу и силь­ные, и сла­бые сто­ро­ны в обо­их ла­ге­рях; мне всегда ка­за­лось, что это – де­ло ис­клю­чи­тель­но лич­но­го вы­бо­ра, и никто здесь не мо­жет быть прав пол­но­стью, кро­ме ме­ня, ра­зу­ме­ет­ся.

За дол­гие го­ды я ис­про­бо­вал раз­ные IDE: Eclipse, KDevelop, а со­всем дав­но – Visual Studio. Я про­бо­вал так­же и ре­дак­то­ры: Emacs, Vim и GEdit. На се­го­дняшний день я сде­лал свой вы­бор, вы­бор яс­ный и уве­рен­ный, и этот вы­бор – Geany.

Про­сто­та и мощь

Geany, по су­ти, тек­сто­вый ре­дак­тор, при­ук­ра­шен­ный и уси­лен­ный вся­ки­ми шту­ка­ми, по­треб­ны­ми боль­шин­ст­ву про­грам­ми­стов. На са­мом де­ле Geany не яв­ля­ет­ся ни IDE, ни обыч­ным тек­сто­вым ре­дак­то­ром; он яв­ля­ет со­бой тек­сто­вый ре­дак­тор с важ­ны­ми встав­ка­ми из IDE. Geany не пы­та­ет­ся вме­стить в се­бе все экс­перт-про­грам­мы, шаб­ло­ны для на­чи­наю­щих и про­чие мо­мен­ты, обыч­ные для IDE, но за­то он вклю­ча­ет основ­ные функ­ции, необ­хо­ди­мые для на­пи­сания при­ло­жений – на­при­мер, от­лич­ный ре­дак­тор, на­ви­га­тор клас­сов, свер­ты­вание ко­да и про­чее. Я твер­до убе­ж­ден, что Geany яв­ля­ет­ся луч­шим вы­бо­ром для про­фес­сио­наль­но­го про­грам­ми­ста или для лю­би­те­ля, пи­шу­ще­го при­ло­жения для Linux.

Geany на­пи­сан с по­мо­щью на­бо­ра вид­же­тов GTK, а зна­чит, от­лич­но ин­тег­ри­ру­ет­ся в ра­бо­чие сто­лы Unity и Gnome в Ubuntu и Fedora со­от­вет­ст­вен­но. Па­ке­ты доступ­ны че­рез Ubuntu Software Centre, в ре­по­зи­то­рии Fedora Everything, а так­же для Debian, Gentoo, OpenSUSE, ArchLinux, Centos, RHEL, AltLinux, SourceMage и Crux, в www.geany.org/Download/ThirdPartyPackages.

Име­ет­ся встро­ен­ная под­держ­ка обши­рно­го ря­да язы­ков про­грам­ми­ро­вания, в том чис­ле (O)Caml, Ada, Assembler, C, C#, C++, COBOL, Python, D, Fortan, FreeBasic, Genie, GLSL, Haskell, Haxe, Java, Objective C, Pascal, Scala, Vala, VHDL и Verilog. Он так­же вклю­ча­ет от­лич­ную под­держ­ку язы­ков скрип­тов и раз­мет­ки, та­ких, как ActionScript, CMake, Erlang, Ferite, Forth, Javascript, LISP, Lua, Makefile, Matlab, NSIS, Perl, PHP, Python, R, Ruby, Shell, Tcl, CSS, DocBook, HTML, LaTeX, Markdown, reStructuredText, Txt2Tags и XML. В ка­че­­ст­ве бо­ну­са, он обес­пе­чи­ва­ет от­лич­ную под­держ­ку фай­лов Abc, Config, Diff, Gettext, SQL, и YAML. В Geany мож­но ис­поль­зо­вать и дру­гие язы­ки, про­сто им мо­гут не по­дой­ти встро­ен­ное вы­де­ление син­так­си­са и дру­гие функ­ции.

На дан­ном уроке мы прой­дем­ся по Geany и по­зна­ко­мим­ся со мно­ги­ми его функ­ция­ми. Что­бы про­ил­лю­ст­ри­ро­вать все это, я соз­дам но­вый про­ект, соз­дам при­мер про­грам­мы, и за­тем мы прой­дем­ся по раз­ным функ­ция­ми и оп­ци­ям на­строй­ки, что­бы по­дог­нать ваш опыт про­грам­ми­ро­вания под ва­ши ну­ж­ды.

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

Ин­тер­фейс

За­гру­зи­те Geany, и вы уви­ди­те ин­тер­фейс, на­по­ми­наю­щий изо­бра­жен­ный на рис. 1. В этом ин­тер­фей­се имеют­ся три основ­ные час­ти. Сле­ва на­хо­дит­ся брау­зер. Здесь вы по­лу­чае­те бы­ст­рый доступ к раз­ным фай­лам, клас­сам, функ­ци­ям и про­чим сим­во­лам, яв­ляю­щим­ся ча­стью ва­ше­го про­ек­та. Мы рас­смот­рим его чуть позднее, когда соз­да­дим наш код.

Спра­ва на­хо­дит­ся основ­ной тек­сто­вый ре­дак­тор. Имен­но здесь вы бу­де­те про­во­дить боль­шую часть сво­его вре­мени. Так же, как и во мно­гих со­вре­мен­ных тек­сто­вых ре­дак­то­рах, вы мо­же­те за­гру­жать мно­го­чис­лен­ные фай­лы, и они доступ­ны в мно­го­чис­лен­ных вклад­ках.

Под тек­сто­вым ре­дак­то­ром на­хо­дит­ся раз­дел Messages [Со­об­щения]. Здесь вы уви­ди­те ин­фор­ма­цию от ва­ше­го ком­пи­ля­то­ра/ин­тер­пре­та­то­ра об от­лад­ке про­грам­мы, и дру­гие по­лез­ные функ­ции, на­при­мер, ме­сто для на­пи­сания за­ме­ток и про­смот­ра за­дач, ко­то­рые еще пред­сто­ит вы­полнить в ва­шем про­ек­те.

В верхней час­ти эк­ра­на вы ви­ди­те ме­ню (в Ubuntu ме­ню встро­ено в верх­нюю панель, как и боль­шин­ст­во при­ло­жений) и обыч­ные функ­ции в при­ло­жении, доступ­ные в ви­де панели ин­ст­ру­мен­тов. Панели ин­ст­ру­мен­тов так­же под­да­ют­ся ин­ди­ви­ду­аль­ной на­строй­ке. Что­бы на­стро­ить их, щелкните пра­вой кноп­кой по панели ин­ст­ру­мен­тов и вы­бе­ри­те Toolbar Preferences [Па­ра­мет­ры панели ин­ст­ру­мен­тов]. Те­перь щелкните по кноп­ке Customize Toolbar [На­строй­ка панели ин­ст­ру­мен­тов], что­бы вы­вес­ти ре­дак­то­ра панели ин­ст­ру­мен­тов. За­тем про­сто вы­бе­ри­те функ­ции сле­ва и щелкните по пра­вой кноп­ке со стрел­кой, что­бы до­ба­вить их к панели ин­ст­ру­мен­тов.

Пи­шем код

Да­вай­те начнем – и соз­да­дим но­вый про­ект. Щелкните по Project > New [Про­ект > Но­вый], и в поя­вив­шем­ся окне вве­ди­те имя для сво­его про­ек­та (на­при­мер, “Awesome App” – «Потрясающее При­ло­жение»), за­тем щелкните по кноп­ке Create [Соз­дать].

Итак, про­ект соз­дан; да­вай­те на­сто­им для него пред­поч­тения. Для это­го щелкните по Project > Properties [Про­ект > Свой­ст­ва]. Весь­ма удоб­но на­чи­нать на­страи­вать про­ект со вклад­ки Indentation [От­сту­пы]. Здесь вы мо­же­те на­стро­ить, бу­дут ли ис­поль­зо­вать­ся та­бу­ля­ция/про­бе­лы. Это осо­бен­но важ­но для раз­ра­бот­чи­ков Python, у ко­то­рых мо­гут быть про­ек­ты с при­менением та­бу­ля­ции или про­бе­лов.

Ес­ли вы ра­бо­тае­те над про­ек­том, ко­то­ро­му ну­жен ком­пи­ля­тор (на­при­мер, над при­ло­жением C/C++), вы так­же мо­же­те ис­поль­зо­вать вклад­ку Build для на­строй­ки команд для соз­дания про­ек­та. Это так же про­сто, как вве­сти ко­ман­ду и ра­бо­чую ди­рек­то­рию для ва­ше­го ко­да. Мы не бу­дем это рас­смат­ри­вать, по­то­му что се­го­дня зай­мем­ся Python.

Вы, ве­ро­ят­но, за­ме­ти­ли, что за вре­мя соз­дания про­ек­та у нас ни ра­зу не поя­вил­ся ни всплы­ваю­щий мас­тер, ни на­бор оп­ций для соз­дания и ото­бра­жения ва­ше­го при­ло­жения. Помните, я сказал, что Geany не яв­ля­ет­ся на­стоя­щей IDE? Вот как раз по­это­му. Ес­ли вы хо­ти­те сгенери­ро­вать свое при­ло­жение, вам по­на­до­бит­ся дру­гой ин­ст­ру­мент, ти­па Quickly, и за­тем вы смо­же­те ско­пи­ро­вать сгенери­ро­ван­ные фай­лы в свою ди­рек­то­рию про­ек­та Geany.

В на­шем но­вом про­ек­те соз­дай­те но­вый файл, на­жав на File > New (with Template) > main.py [Файл > Но­вый (с шаб­ло­ном) > main.py]. Соз­да­ст­ся но­вый файл Python, в ко­то­рый уже вклю­чен некий код, на­при­мер, ком­мен­та­рий по его ли­цен­зи­ро­ванию, и шаб­лон­ный код, что­бы реа­ли­зо­вать функ­цию Python main(). Те­перь на­жми­те на File > Save As [Файл > Со­хранить как] и со­храните файл как app.py. Те­перь да­вай­те до­ба­вим зна­менитое «При­вет, мир! [Hello World!]» в main(), что­бы это вы­во­ди­лось на эк­ран при за­пуске:

print “Hello World!”

Со­хра­ни­те файл, а за­тем да­вай­те его за­пус­тим.

В Geany файл мо­жно за­пустить, сна­ча­ла щелк­нув по вклад­ке Terminal [Тер­ми­нал] в нижнем окне вы­во­да. Затем надо пе­рей­ти в ди­рек­то­рию с ко­дом (в мо­ем слу­чае это /home/jono/projects/Awesome App/) и за­пустить файл:

cd projects/Awesome App

python app.py

Те­перь на эк­ране долж­но поя­вить­ся «При­вет, мир!». Те­перь да­вай­те про­бе­жим­ся по то­му, как Geany уже де­ла­ет наш код про­ще для на­ви­га­ции.

Сле­ва, в брау­зе­ре, щелкните по вклад­ке Symbols [Сим­во­лы]. Это вклад­ка, на ко­то­рой вы бу­де­те про­во­дить боль­ше все­го вре­мени в по­ис­ках раз­ных час­тей ко­да. Вы уже долж­ны уви­деть, что эта вклад­ка по­ка­зы­ва­ет на­шу основ­ную функ­цию main(). Щелк­нув по вклад­ке Documents, вы так­же смо­же­те уви­деть наш един­ст­вен­ный ис­ход­ный файл; это осо­бен­но удоб­но, ес­ли у вас мно­го ис­ход­ных фай­лов.

Щелкните по функ­ции main() во вклад­ке Symbols, и вы уви­ди­те, что на по­лях ре­дак­то­ра поя­ви­лась ма­лень­кая стрел­ка, ука­зы­ваю­щая на функ­цию. В ре­дак­то­ре так­же име­ет­ся ма­лень­кий бе­лый квад­рат с символом - внутри, ря­дом с ка­ж­дым бло­ком ко­да. Этот квад­ра­тик яв­ля­ет со­бой про­стой ва­ри­ант сво­ра­чи­вания ко­да, что­бы скрыть те его фраг­мен­ты, ко­то­рые вам на дан­ный мо­мент не нуж­ны. Ес­ли щелк­нуть по это­му квад­ра­ти­ку, он бу­дет по­ка­зы­вать сим­вол +, сообщая, что блок ко­да свер­нут.

Те­перь да­вай­те соз­да­дим класс, что­бы про­де­мон­ст­ри­ро­вать, как Geany мо­жет с лег­ко­стью осу­ще­ст­в­лять на­ви­га­цию по ва­ше­му ко­ду. До­бавь­те в свою про­грам­му сле­дую­щий код:

class MyClass:

def __init__(self):

print “Соз­да­ние объ­ек­та MyClass”

def show_info(self):

print “Это класс MyClass”

def foo(self, value):

print “Вы снаб­ди­ли ме­ня %s “ % ве­ли­чи­ной

if __name__ == ‘__main__’:

obj = MyClass()

obj.show_info()

obj.foo(5)

В этом ко­де я соз­даю про­стой (и до­воль­но бес­по­лез­ный) класс. За­меть­те, что мы уда­ли­ли функ­цию main(), по­сколь­ку она боль­ше не нуж­на.

По ме­ре на­пи­сания ко­да вы, воз­мож­но, за­ме­ти­ли, что ря­дом с ка­ж­дой функ­ци­ей клас­са, ко­то­рую вы до­бав­ляе­те, ав­то­ма­ти­че­­ски по­яв­ля­ют­ся ма­лень­кие квад­ра­ти­ки сво­ра­чи­вания ко­да. Geany умен: он на­блю­да­ет за ко­дом, ко­то­рый вы пи­ше­те, и ав­то­ма­ти­че­­ски при­ме­ня­ет эти функ­ции, не до­жи­да­ясь, когда вы за­вер­ши­те блок или со­храните файл.

Вы долж­ны бы­ли за­ме­тить еще од­но свой­ст­во: когда вы вы­зы­вае­те функ­ции клас­са (т. е. вво­ди­те obj и за­тем имя функ­ции), Geany вы­во­дит ма­лень­кое окош­ко ав­то­за­полнения ко­да, по­ка­зы­вающе­е вам функ­ции, ко­то­рые, воз­мож­но, по­дой­дут к то­му ко­ду, ко­то­рый вы вве­ли. Это очень удоб­ная оп­ция, и Geany бу­дет час­то пы­тать­ся пред­ло­жить име­на функ­ций в раз­ных API, ко­то­ры­ми вы то­же поль­зуе­тесь.

До­ба­вив наш класс к на­шей про­грам­ме, за­гляните во вклад­ку Symbols в брау­зе­ре в ле­вой час­ти ок­на. Те­перь вы ви­ди­те, что до­бав­лен­ный класс поя­вил­ся ря­дом с ма­лень­ким го­лу­бым знач­ком, и функ­ции клас­са ото­бра­же­ны как часть ие­рар­хии это­го клас­са. Для та­ко­го неболь­шо­го при­ло­жения, как это, ото­бра­жение клас­са не да­ет ка­ких-то осо­бых пре­иму­ществ, но для круп­но­го при­ло­жения, вро­де по­ка­зан­но­го на рис. 2, этот брау­зер клас­сов яв­ля­ет­ся ис­клю­чи­тель­но важ­ным, по­сколь­ку с его по­мо­щью легко пе­ре­ме­щать­ся по ко­до­вой ба­зе в по­ис­ках то­го, что вам нуж­но.

На­строй­ка

Одним из клю­че­вых фак­то­ров, от­ли­чаю­щих IDE от ре­дак­то­ра, яв­ля­ет­ся уро­вень на­строй­ки. Мно­гие IDE пре­достав­ля­ют ряд ра­зум­ных функ­ций по умол­чанию и ог­раничен­ную воз­мож­ность на­строй­ки, что­бы уп­ро­стить ра­бо­ту в IDE для поль­зо­ва­те­лей. Хо­тя мно­гие ре­дак­то­ры не име­ют удоб­ной функ­ции ин­тер­фей­са, пред­ла­гае­мой IDE, уро­вень на­строй­ки они пред­ла­га­ют пре­восход­ный. И Geany яв­ля­ет­ся одним из та­ких при­ме­ров.

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

1 Edit > Preferences [Ре­дак­ти­ро­вать > Пред­поч­тения] – имен­но здесь вы на­страи­вае­те основ­ное при­ло­жение.

2 Edit > Plugin Preferences [Ре­дак­ти­ро­вать > Пред­поч­тения мо­ду­лей] – здесь вы мо­же­те на­стро­ить мо­ду­ли рас­ши­рения (мы ско­ро по­го­во­рим о мо­ду­лях-пла­ги­нах бо­лее под­роб­но).

Да­вай­те рас­смот­рим неко­то­рые час­ти основ­ной ра­бо­ты в Geany (без рас­ши­рений), ко­то­рые вы, воз­мож­но, ре­ши­те на­стро­ить.

Начнем с на­строй­ки ин­фор­ма­ции, до­бав­ляе­мой к ком­мен­та­ри­ям за­го­лов­ка при до­бав­лении но­во­го фай­ла к про­ек­ту. На­жми­те на Edit > Preferences > Templates [Ре­дак­ти­ро­вать > Пред­поч­тения > Шаб­ло­ны], и вы уви­ди­те раз­ные об­лас­ти, под­ле­жа­щие ре­дак­ти­ро­ванию. Geany по­ста­ра­ет­ся за­полнить мно­гие об­лас­ти за вас, но неко­то­рые вам при­дет­ся от­ре­дак­ти­ро­вать са­мим.

В неко­то­рых об­лас­тях вы уви­ди­те нечто по­хо­жее на пол­ную бес­смыс­ли­цу, на­при­мер, %Y- %m- %d в по­ле Date. Это ко­ды, ко­то­рые вы­сту­па­ют в ро­ли шаб­ло­нов, что­бы струк­ту­ри­ро­вать ото­бра­жение неко­то­рых ве­щей, на­при­мер, да­ты. На­при­мер, %Y- %m- %d мо­жет кон­вер­ти­ро­вать­ся в 2012-12-25 (%Y – это 2012, %m – 12, и  %d – 25). Пол­ный спи­сок этих ко­дов и то­го, что они де­ла­ют, вы най­де­те на http://man.cx/strftime.

Идем даль­ше. Од­ной из са­мых важ­ных об­лас­тей на­строй­ки для мно­гих раз­ра­бот­чи­ков яв­ля­ет­ся при­вяз­ка кла­виш. Про­грам­ми­ро­вание – это во мно­гом и нау­ка, и ис­кусст­во, в ко­то­ром есть ритм и ка­ден­ция. Когда вы «в уда­ре», вы стре­ми­тесь со­хранить свой ритм, по­сколь­ку он от­ра­жа­ет­ся на про­из­во­ди­тель­но­сти ва­ше­го на­пи­сания ко­да. Имен­но по этой при­чине мно­гие из нас но­чи на­про­лет си­дят за про­грам­ми­ро­ванием, не же­лая по­те­рять ку­раж.

А ес­ли что и сби­ва­ет с ку­ра­жу ча­ще, чем все осталь­ное, то это необ­хо­ди­мость ис­поль­зо­вать мышь. От­рыв рук от кла­виа­ту­ры, что­бы пе­ренести их на мышь, а по­том об­рат­но, силь­но за­мед­ля­ет про­цесс, а функ­цио­наль­ные кла­ви­ши да­ют ва­ше­му ку­ра­жу воз­мож­ность ку­ра­жить­ся и даль­ше. Ес­ли рань­ше вы никогда не ис­поль­зо­ва­ли функ­цио­наль­ных кла­виш, на­стоя­тель­но вам ре­ко­мен­дую их изу­чить, и очень хо­ро­шо, что в Geany у вас есть воз­мож­ность на­стро­ить прак­ти­че­­ски все функ­цио­наль­ные кла­ви­ши. Для это­го щелкните по Edit > Preferences и на­жми­те на вклад­ку Keybindings [При­вяз­ки кла­виш].

Еще од­на важ­ная об­ласть на­строй­ки – сам ре­дак­тор. Хо­тя тек­сто­вый ре­дак­тор ка­жет­ся весь­ма про­стым... вы пе­ча­тае­те в нем текст... все же есть мно­же­ст­во фак­то­ров, в ко­то­рых и кро­ют­ся раз­ли­чия в ис­поль­зо­вании тек­сто­во­го ре­дак­то­ра. От­сту­пы... вы­де­ление син­так­си­са... ну­ме­ра­ция строк... пе­ре­нос стро­ки... но­вые стро­ки и конеч­ные про­бе­лы... ав­то­за­полнение ко­да и про­чие эле­мен­ты – все они и яв­ля­ют­ся эти­ми фак­то­ра­ми. К сча­стью, в Geany име­ют­ся оп­ции на­строй­ки для ши­ро­ко­го ря­да функ­ций в Edit > Preferences > Editor [Ре­дак­ти­ро­вать > Пред­поч­тения > Ре­дак­тор].

Вы так­же мо­же­те на­стро­ить то, ка­кие час­ти ре­дак­то­ра бу­дут ви­ди­мы­ми, на­жав на View > Editor [Вид > Ре­дак­тор].

Я бы по­ре­ко­мен­до­вал вам обя­за­тель­но вклю­чить Line Numbers [Но­ме­ра строк]; воз­мож­ность уви­деть но­мер об­су­ж­дае­мой стро­ки важ­на при со­трудниче­­ст­ве с дру­ги­ми раз­ра­бот­чи­ка­ми.

Мож­но так­же ис­поль­зо­вать View > Editor > Colour Schemes [Вид > Ре­дак­тор > Цве­то­вые схе­мы], что­бы за­гру­зить аль­тер­на­тив­ную цве­то­вую схе­му ре­дак­то­ра, ес­ли, на­при­мер, вы пред­по­чи­тае­те бо­лее тем­ные то­на. Сменные те­мы мож­но най­ти на www.geany.org/Download/Extras#colors.

Об­ра­бот­ка за­дач

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

# TODO: Expand this to include support for XYZ. [Рас­ши­рить, что­бы до­ба­вить под­держ­ку XYZ]

Вы так­же мо­же­те ос­та­вить ком­мен­та­рий, что­бы ис­пра­вить часть ко­да позд­нее. Час­тень­ко это вы­гля­дит так:

# FIXME: Make this thread-safe. [Сде­лать по­точ­но-ори­ен­ти­ро­ван­ным]

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

К сча­стью, Geany вклю­ча­ет неболь­шую функ­цию, при­ме­няе­мую для ото­бра­жения всех этих при­ме­чаний в од­ном мес­те, соз­дав та­ким об­ра­зом спи­сок неот­лож­ных дел (TODO, Надо сделать) для сво­его ко­да. Что­бы ис­поль­зо­вать эту функ­цию, про­сто ис­поль­зуй­те TODO и FIXME [по­правь ме­ня] для опи­сания про­бле­мы, как по­ка­за­но вы­ше, и убе­ди­тесь, что в Edit > Plugin Preferences > Addons [Ре­дак­ти­ро­вать > Пред­поч­тения мо­ду­лей > До­полнения] у вас от­ме­че­на функ­ция Show available tasks [По­ка­зать имею­щие­ся за­да­чи] в окне Messages. Ес­ли за­хо­ти­те, мо­же­те уста­но­вить дру­гие тер­ми­ны вме­сто TODO и FIXME, но TODO и FIXME яв­ля­ют­ся по­все­ме­ст­но ис­поль­зуе­мы­ми, так что вы, воз­мож­но, ре­ши­те про­сто при­дер­жи­вать­ся на­стро­ек по умол­чанию.

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

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

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

Итак, не тра­тя вре­мени на вся­кую ерун­ду, при­сту­пай­те-ка к про­грам­ми­ро­ванию. Сча­ст­ли­во­го вам про­грам­ми­ро­вания, дру­зья мои!


Персональные инструменты
купить
подписаться
Яндекс.Метрика