Daha çox

Arcpy.da.SearchCursor () sinfi niyə Eclipse daxilində avtomatik tamamlanmır?

Arcpy.da.SearchCursor () sinfi niyə Eclipse daxilində avtomatik tamamlanmır?


CİS üçün çox yeniyəm.

Yalnız pydev plug-in və Desktop üçün ArcGIS 10.1 ilə tutulma lunasını quraşdırdım.

Arcpy.da.SearchCursor idxal etməyə çalışarkən bir skript yazdığım zaman avtomatik tamamlamaq üçün heç bir SearchCursor tapılmadığını görürəm.

Problem nədir? Nə səhv etdim?


SearchCursorbir sinifdirarcpy.damodul deyil, modulun özü, buna görə də yalnız həmin sinfi idxal etmək istəsən istifadə edə bilərsən:

arcpy.da-dan SearchCursor idxal edin

Daha sonra buna yalnız istinad edə bilərsinizSearchCursor.

Bütün modulu da idxal edə və içindəki sinifə müraciət edə bilərsiniz və bunu da qeyd etmək lazımdırarcpy idxal edinavtomatik idxalarcpy.davə bir dəstə arcpy ilə əlaqəli şeylər.


Məncə orijinal afişanın necə istifadə ediləcəyini soruşduğu düşünülmürarcpy.da.SearchCursor (), əksinəarcpy.da.SearchCursor ()sinif Eclipse içindəki kod tamamlama pəncərəsində görünmürdü (bəzən intellisense və ya ağıllı kod tamamlanması deyilir).

ArcGIS 10.1 çıxdığından bəri geosessil alətləri üçün kodları redaktə etmək üçün Eclipse + PyDev və / və ya LiClipse istifadə edirəm. heç vaxt hər hansı birinin kodunu tamamlaya bilmişdirarcpy.damodullar. Bu barədə Esri GeoNet-də (əvvəlki Esri forumları) bir neçə yazı var, bir, iki və üçə baxın. Birinci mövzuda Esridən Dave (vurğu mənim) deyir:

Veri giriş modulu üçün üstün hədəf sürət idi. Əmin olduğum kimi köhnə imlec modelinin bu qədər sürətli olmadığından xəbərdarsınız. Bunun bir hissəsi olaraq arcpy.da arcpy-nin əksəriyyətində gördüyünüz açılanları təmin edən Python bağlayıcıları yoxdur. Əslində, bu, sürət və IDE dostluğu arasındakı bir mübahisə idi və bu vəziyyətdə kriteriya sürət kozunu diktə etdi.

Təəssüf ki, Eclipse'nin gözəl kodunu tamamlamaq üçün bir yol yoxdurdamodul. Bununla birlikdə, hələ də zəhlətökən qırmızıdan qaça bilərsinizİdxaldan təyin olunmayan dəyişən: SearchCursorEclipse-də səhv qoyaraq# @ TərifsizDəyişənsətrin sonunda, belə:

MyCursor = arcpy.da.SearchCursor ("MyLayer", ["*"]) # @ UndefinedVariable

Tutulmada Arcpy Python Tərcüməçim üçün 'Zorlanan Buitins' nişanına 'arcpy' və 'arcpy.da' əlavə edərək bunu düzəltdim. Kod tamamlanması işləyir və artıq da.SearchCursor kimi şeyləri təyin olunmayan bir dəyişən kimi qeyd etmir.


Java inkişaf IDE-si kimi Emacların uyğunluğu

Emacs-a keçmək üçün bir daha cəhd edirəm. Mən yaxşı bir Vi istifadəçisiyəm, lakin son 10+ il ərzində inkişaf işimin əksəriyyəti üçün Eclipse istifadə edirəm (bu qədər müddət olubmu).

Buna görə biraz oxudum və JDEE-nin yol olduğunu düşündüm - konfiqurasiya et, amma yenə də əsas suallarım var.

Ancaq bir az daha araşdırma apardıqdan sonra - görünür JDEE yaxşı saxlanıla bilməz və bəlkə də mənə lazım olan tək şey CEDET?

  1. Emacs mənim Eclipse əvəzedicim ola bilərmi? Quruluşumu Maven istifadə edərək təşkil edirəm?
  2. "1" bəli olduqda, hansı alət dəstinə başlamalıyam: CEDET? JDEE?


16 Cavablar 16

Düşünürəm ki, IDE-dən istifadə təlim prosesində kömək edir. Metodlar, xüsusiyyətlər, parametrlər, həddindən artıq yüklər və bənzəri aşkar olunur. Çox böyük kitabxanalarla Intellisense, JIT biliklərini aşağı salmağa kömək edir. Günümüzün kodlaşdırma mühitində hər şeyi qabaqcadan öyrənmək mümkün deyil və JIT öyrənmə çox vaxt məhsuldar olmağın yeganə praktik yoludur.

Bir IDE-nin istifadəsini kor-koranə istifadə etməyinizin bir qoltuqağacı ola biləcəyini başa düşürəm, amma mənfi cəhətdən xeyirdən çox olduğunu düşünürəm.

Şablonları sizin üçün əvvəlcədən qurulmuş şeyləri anlamadan istifadə etmək, əksinə, daha çox problemdir. Düşünürəm ki, inkişaf etdirici şablon kodunu oxumağa vaxt ayırsa, bunlar bir öyrənmə vasitəsi kimi istifadə edilə bilər. Ancaq insanların çoxu narahat etmir. Hərçənd əla bir öyrənmə vasitəsi ola bilər.

Məfhumları anlamaq və onlarla yüzlərlə axmaq kitabxana dərsləri və metodlarını əzbərləmək iki başqa şeydir. Intellisense, bu faydasız biliklərin hamısını zehninizdən tamamilə atmağa kömək edir və bunu nə qədər tez etsəniz, bir o qədər yaxşıdır. Faydalı konsepsiyalar üçün daha çox yer buraxın, məhdud resurslarınızı API-lərdə boş yerə sərf etməyin.

Bir sualın yenilənmiş hissəsini cavablandırmaq üçün: az sintaksis detalları, faylların düzeni, kompilyator və linker çağırışı ümumi proqramlaşdırma anlayışları ilə müqayisədə əhəmiyyətsizdir. Yenidən başa düşüldükdən sonra, artıq səviyyəsiz şeylərin həqiqətən necə işlədiyini daha dərindən başa düşə bilərsiniz. Bunu əsasları artıq bildiyiniz zaman etmək daha yaxşıdır, əks təqdirdə bir sıra təhlükəli sehrli xurafatlar alacaqsınız.

Məsələn, DrScheme IDE, proqramlaşdırma tədrisində böyük bir təcrübəyə malikdir və müvəffəqiyyəti əsasən həqiqətən vacib olan şeylərə konsentrasiya olmağa kömək etmə qabiliyyəti ilə bağlıdır.

Avtomatik tamamlama istifadə etmək heç də pis bir şey deyil.

Sadəcə sürət üçündür və mənim üçün IDE-ni tutmağa başlayan və onu yaxşı istifadə edən birinin əlaməti olardı.

Onlardan istifadə etməməyin, məsələn OO öyrənmələrinə necə kömək edəcəyini başa düşmürəm.

Proqramlaşdırma üçün yeni olan tələbələrə dərs vermiş və öyrətmişəm, avtomatik tamamlama / intellisense bəzən xeyirdən daha çox zərər verdiyini görürəm. Bəli, ondan istifadə edərək bir proqram yaza bilərlər. Bəli tərtib edir və işləyir və istəməyimizi edə bilər. Ancaq nə etdiklərini anlamırlar.

Nə baş verdiyini anlamadıqda, daha az proqramlaşdırma və işarələri almaq üçün bir həll yolunu daha çox sındırmaq olur. Tələbələrlə çox şey baş verdiyini gördüm, çünki onlardan tələb etdiklərimiz daha da çətinləşdi, sadəcə bir şey işləyənə qədər hack etdilər. Aralıq dövrü gələndə və şagirdlərdən sadə üsulları əl ilə yazmaları istənəndə bu həmişə aydın olurdu. bacarmadılar.

Bəli, avtomatik tamamlama / intellisense bizə (peşəkar inkişaf etdiricilərə) çox kömək edir, sürətləndirir. Bütün fərqli metodları və parametr siyahılarını əzbərləmək məcburiyyətində deyilik, eyni zamanda bir metodun hansı parametrləri alacağına dair bir tahmini də təhlükə altına ala bilərik, bilmək üçün proqramlaşdırma təcrübəmiz var.

Yeni başlayanlar yox. IDE-lərinin bir siyahısını çəkməsini gözləyəcəklər, bəlkə də ehtiyac duyduqları birini tapana qədər bu siyahıda gəzəcəklər, lazım olan parametrlərə baxacaqlar və içəri keçmələri lazım olub olmadığını görəcəklər. sonunda birlikdə təhvil verə biləcəkləri bir şeyi sındırmış olacaqlar.

Kursun sonunda vəsiqəni qazandıqda, proqramlaşdırma sinifindən dayaz bir qələbə ilə uzaqlaşacaqdılar, çoxları bir daha bir başqa CS sinifinə girməyəcəklər, etdikləri bir şeyi anlamadıqlarını və ya niyə etdiklərini başa düşmədilər. o.

IDE-lər və ümumiyyətlə inkişaf mühitləri ilə əlaqəli problem, avtomatik tamamlama kimi çox şey deyil, şablonlu həllərin istifadəsi (fayl | yeni | layihə) sizin üçün çox "maraqlı" işlərin görülməsi və müxtəlif dərəcələrdə gizli qalması .

Geniş şəkildə kapotun altında nələrin baş verdiyini başa düşən birisi üçün bunun faydası var, amma ehtiyac duyduqlarını öyrənən biri üçün daha azdır.

Ağır çəkili bir İDE-ni atəşə tutmaq üçün çəkilən vaxt məsələsi də var.

Buna görə çəkidən daha yüngül bir şeydən istifadə etmək və hər kod sətirini özünüz yazdığınız tətbiqetmələri işə salmağın xeyli ləyaqətə sahib olduğunu düşünürəm - xüsusən də mətn redaktoru və bir tərtibçi istifadə etməyinizə ehtiyacınız olmayan vacib məqamı nümayiş etdirir. Proqram yazmaq üçün IDE və s Amma bu o demək deyil ki, mətn redaktorunu uzun müddət istifadə etmək istəyirəm və ayıklama baxımından problemlər yaradır - kəsilmə nöqtələri edə bilmək və kod vasitəsilə bir addım atmağı bacarmaq istəyirsən, çünki bu, daha asan olacaq neler olduğunu anlamaq.

Əlbətdə ki, "canlı" bir komut satırına sahib olduğunuz Python kimi şeyləri nəzərdən keçirərək məsələni daha da qarışdıra bilərik.

Yaxşı sual, yaxşı bir cavab yoxdur - yalnız bir irəliləməni öyrənmək və mətn redaktoru və bir tərtibçi ilə başlamaq (və ya bir əmr sətri tərcüməçisi) ilə başlamaq istəməyiniz istisna olmaqla, daha çox irəliləmədən əvvəl sintaksis və məntiqin əsaslarına diqqət yetirməyinizə imkan verəcəkdir. daha güclü bir inkişaf mühiti ilə etmək daha asan olacaq kompleks şeylər.

Çətin yolu öyrənmək ümumiyyətlə sənin yanında qalır.

Yeni gələn kimi, xahiş edirəm IDE istifadə etməyin. Komanda xəttindən istifadə edin, səhvlərinizdən öyrənin. Bu ayrıca tərtibçi və bağlayıcı seçimlərini daha yaxından anlamağınıza kömək edəcəkdir.

Yaxşı IDE-dən nə vaxt istifadə edirsiniz? Nəhəng bir şey dizayn edərkən və ya çoxlu siniflər, metodlar və dəyişənlərlə böyük bir kod bazası üzərində işləyərkən.

IDE-lərin qəribəliyindən tez-tez şikayət etsəm də məhsuldarlığa bir fayda olduğunu ilk söyləyən olardım. Bununla birlikdə BASIC, C, C ++, Java, Python, Perl, PHP və başqa bir neçə dildə mətn işıqlandıran bir redaktor və dil üçün tərtibçi / tərcüməçidən başqa bir şey öyrənmədim. Java-nı həqiqətən Not Defteri'nde öyrəndim!

Bir IDE öyrənmək "sehrli" olmağı təşviq edir - "bunun necə işləməsi vacib deyil" fikri. Abstraksiya yaxşı sehrdir, pisdir. Proqramçı bir layihədə baş verən hər şeyi bilməlidir və ya öyrənə bilməlidir. Yaxşı bir IDE, layihəni idarə etmək deyil, sifarişin aparılması ilə məşğul olmaq üçün hazırlanmışdır. Düzgün istifadə əla vasitədir. Ancaq hansı sənətkar bir CNC router istifadə etməyə başlayır?

Düşünürəm ki, öyrəndiyim yol (hər şeyi yazmaq və bir layihə qurmaq üçün tərtibçini yaxşı bilmək məcburiyyətində qaldım) nəhayət IDE-lərdən istifadə etməyə başladığımda mənə ölçüsüz kömək etdi. Məsələn, bir Java layihəsi Eclipse layihəsindəki kiçik bir qovluq deyil, yollar, konfiqurasiya və yerləşdirmə üçün bəzi XML sənədləri olan bir paket strukturundakı siniflər toplusudur. IDE olmadan böyük bir müəssisə tətbiqi qurmaq istəməzdim, ancaq kiçik olanları qura bilərəm. Bu, böyüklərin quruluşunu anlamağı asanlaşdırır və quruluşda müəyyən bir davranış istədikdə, deyək ki, javacın necə işlədiyini bilirəm, buna görə də sehrli birləşməni tapmaqdansa, həqiqi qurma təklifini çimdik bilərəm. ' t qurma konfiqurasiyasında mövcuddur. Hata mesajlarını və onları necə tapıb düzəldəcəyimi daha dərindən başa düşdüyümə inanıram. IDE-lər, qırmızı altından xətt çəkmədiyi üçün kodun çox doğru olduğu hissini təbliğ edir.

IDE istifadə edərək dərs deməzdim. Düşünürəm ki, başlanğıc layihələri kifayət qədər kiçikdir ki, mürəkkəbliyi idarə etmək üçün arqumentlər çox azdır. Məsələn, Java tədris edirsinizsə, bütün dərslərinizi eyni qovluğa və javac * .java-a yerləşdirə bilərsiniz. Bunun üçün IDE-yə ehtiyacınız yoxdur! Bu, proyektlərin kiçik, konsepsiya sübutundan daha az olmasını müdafiə edir. Əlavə xərcləri minimuma endirin və şagirdlərin ehtiyac duyduğu konsepsiyanı öyrətməyə yönəldin. Bir IDE'nin faydalı olacağı daha böyük layihələr ya daha inkişaf etmiş SE siniflərinə, ya da xüsusi layihələrə aiddir.

Dərslər tapmaq və API araşdırması ilə bağlı kömək məsələsinə gəldikdə, yenə də layihələrin kiçik olacağı təqdirdə bunun çox vacib olduğunu düşünürəm. Yenidən Java-da javadoc oxunması çox asandır. Heç kim bütün API-ni onsuz da orada saxlaya bilməz olacaq bir IDE-nin faydası olmadan bir API araşdırmanız lazım olacaq bir vaxt. Kimi, başqa dillərdə və ya IDE-ni aça bilməyəcəyiniz bir serverə köçürmək. Sənədləri necə tapacağınızı öyrənin, "basın" yox. ' və bir obyektin metodlarının nə olduğunu görə bilərsiniz. "

Hər hansı bir proqramçı bir IDE öyrənə bilər, lakin bir IDE bilmək sizi yaxşı bir proqramçı etmir. Qara zarafat bir yana, "sehr" bir proqramçı üçün heç vaxt yaxşı bir söz deyildir.


ArcPy SearchCursor

Bir axtarış imleci təkrarlanan bir tərif sorğusu varmı? Yardımı dəfələrlə oxudum və fərqli şeylər əldə etmək üçün ayələr istifadə edə biləcəyinizi bilirəm. Bir xüsusiyyət qatından keçməli və bir-birinə bir funksiya tətbiq etməliyəm. Əl ilə edərək, spesifik xüsusiyyət üçün bir tərif sorğusu təyin edərdim, işi görərdim, sonra çıxış qatını son qatına əlavə edib reklam bulantısını təkrar edərdim.

Buna görə məntiqi olaraq bunu tərif sorğusunu bir axtarış imleci ilə əldə edəcəyim obyekt id nömrələri siyahısını gəzdirmək üçün təyin edib sonra tərif sorğusu üçün döngə üçün başqa birinə qoşmağı düşünürəm, ancaq içindəki funksiyanı edə bilərəm. axtarış kursoru döngüsü əvəzinə? Giriş kursunu axtarış kursorunun keçdiyi təbəqə kimi qoya bilərəmmi və bu zaman yalnız kursorun yandığı sətirdə tətbiq oluna bilərmi?

Düşünürəm ki, buna nail olmağa çalışdıqlarınızla bir az daha dəqiqləşə bilsəniz başa düşməyimiz üçün faydalı ola bilər! Girişlər baxımından & quotfunksiya & quot və dediklərinizi nə deməkdir.

Kursorlar məlumatlarınızı təkrarlamağa və gedərkən oxumağa (axtarışa), əlavə etməyə (daxil etməyə) və ya dəyişdirməyə (yeniləməyə) imkan verir. Kursor daxilində tərif sorğularını tətbiq etmək istədiyim hər hansı bir vəziyyəti düşünə bilmirəm, buna görə də axtarış hüququ içərisindəki funksiyanı & quot-a uyğun həll olaraq doğru əyilmişəm.

Bir cədvəlin ardıcıl şəkildə təkrarlanmasını düşünürsənsə, imlec yerin hər hansı bir nöqtədəki təsviridir. Ok düyməsini basarkən mətn sənədinin üzərində hərəkət edən bir imleci düşünün.

Bir imleci yaratdığınız zaman, dəqiq nəyi təkrarlayacağınızı təyin edirsiniz. Sonra kursorunuzu masa ətrafında necə hərəkət etdirdiyinizi müəyyənləşdirmək üçün siyahınızı yazın və kod blokunuzu həmin siyahıya daxil edin. EG: search_cursor.rows-dakı sıra üçün: işi et.

Bu koddan həqiqətən istədiklərinizi söyləmirəm, ancaq ehtiyac duyduğunuz şeyi yuva döngüsü olmadan əldə edə biləcəyinizi diqqətlə düşünməyinizi məsləhət görürəm. İç içə döngələr performansı öldürür, buna görə yalnız lazım olduqda istifadə edin.

1-ci: köhnə arcpy.SearchCursor deyil, arcpy.da.SearchCursor istifadə edin. & # X27da & # x27, köhnədən daha böyük bir inkişafdır.

Sualınıza.
Tərif sorğusu yalnız xüsusiyyət qatınız üçün bir filtrdir. (məsələn, Status = & # x27Active & # x27 təbəqənizi yalnız & # x27Active & # x27 xüsusiyyətləri ilə məhdudlaşdıracaq.) Bu, tərif sorğunuz yalnız bir qeydlə nəticələnmədikcə, tək bir xüsusiyyət üzərində işləməyə imkan vermir.
Bunu arcpy-də etmək üçün: arcpy.MakeFeatureLayer (& ltfeature class & gt, & ltlayer name & gt, & ltSQL definition query & gt)
Sonra kursorunuzu & ltlayer name & gt-də işə salın (ayrıca & ltsql tərif sorğunuzu və gt-ni birbaşa axtarış imlecinə ata bilərsiniz).

Axtarış imleci bir dəfəyə tək bir qeyd (cədvəl, görünüş və ya qat) üzərində işləməyə imkan verir. Da imlecləri işləmək istədiyiniz sahələrin siyahısını verməyinizi tələb edir. Yuxarıdakı nümunəni davam etdirmək üçün.

yuxarıdakı & # x27 ilə & # x27 istifadə edərək, kursor və satır obyektləri kursorun sonunda avtomatik olaraq təmizlənəcəkdir.


Bir sahə ola bilər və ya olmaya biləcəyi zaman da.SearchCursor iterasiyasının necə veriləcəyi barədə təkliflər axtarır.

Birinci parametr nöqtə xüsusiyyəti sinfi, ikincisi isə mövcud olduqda yüksəklik sahəsini təyin etmək üçün isteğe bağlı bir parametr olan ArcToolBox alətim olduğunu söyləyin. Sonra ssenaridə aşağıdakı kimi bir şey olacaq:

İndi bir hündürlük sahəsi göstərildiyi təqdirdə bu yaxşı işləyəcək, amma əks təqdirdə RuntimeError-a qayıdacaqdır: mövcud olmayan bir sütun göstərilmişdir. gözlənildiyi kimi. Bunun üçün təmiz bir yol nədir? Əvvəllər / istisna olmaqla bir cəhd etdim. Bu kimi bir şey:

Bu isteğe bağlı yüksəklik sahəsini idarə etmək üçün daha təmiz / təmiz bir yol varmı?

Yəni düzəlişinizə və funksiyanı necə tətbiq etdiyimə əsasən şərhim kodun tam olaraq qısaldılmadığı üçün doğrudur, amma bu vəziyyətdə cəhd / xaricində bir / else üstünlük verilir? Bunu nəzərdə tutulduğu kimi görmürəm, ancaq funksiyanızı istifadə edərək belə bir şey edirəm:

Mən səhv cəhdləri üçün ümumiyyətlə cəhd edirəm (istisna olmaqla ən azı).

Probleminizi düzgün başa düşsəm (burada bir az daha çox kontekst istifadə edə bilərsəm), düşünürəm ki, ən yaxşı seçim xüsusiyyət sinifində olan sahələrin siyahısını yaratmaq olacaq. əvvəl siz kursoru idarə edirsiniz. Buradan belə sadə bir if ifadəsi edə bilərsiniz:

Və bundan sonra kursorunuzu işə salın. Ardından kodu başqa bir açıqlama qoyun ki, sanki hündürlük sahəsi yoxdu kimi kodu çalıştırın.

Bu, kodun bir yüksəklik sahəsi olub olmadığına əsasən iki ayrı yolla işləməsini istədiyinizi düşünür.

DÜZENLEME: / u / K7MFC cavabını belə görmədin (reddit məsələləri?), Lakin bu, ehtimal ki, sahə adlarının siyahısını yaratmaqdan daha təsirli və çevikdir.

Digərləri bunun sırf kodla işlənməsi üçün yaxşı təkliflər verirlər, amma seçimin interfeysinə qədər köpürməsini tövsiyə edirəm, buna görə istifadəçi üçün yüksəklik sahəsi göstərilmədiyi təqdirdə fərqli bir əməliyyatın həyata keçirildiyi aydın olur.

Bunu etmək üçün Toolbox-a & quotElevation Field & quot adlı əlavə bir parametr əlavə edin. Parametri konfiqurasiya edərkən, növü üçün Lazım deyil, Könüllü olaraq təyin edin. & Quot-dən alınan & quot üçün xüsusiyyət sinif parametrinizi seçin. Bu, açılan siyahıdan hansı xüsusiyyət sinifinə daxil olursunuzsa olun. Bu isteğe bağlı bir parametr olduğundan istifadəçilər onu boş buraxa və ya uyğun yüksəklik sahəsini seçə bilərlər.

Sonra kodda aşağıdakı kimi görünür. Burada bir hündürlük sahəsi təmin edildiyinə əsaslanan dallanma məntiqiniz var. Yadda yox / istisna olmaqla. Bu yanaşmanın digər üstünlüyü, sahənin kodda olduğunu təsdiqləməyinizdir, çünki istifadəçilər istifadəçi interfeysi tərəfindən verilən açılan siyahıdan bir sahə seçməlidirlər. Sahə parametriniz ya boş, ya da etibarlı bir sahə olacaqdır.


Robot çərçivəsi açar söz tətbiqini seçmir

Yaratdığım bir Eclipse Maven-Selenium-TestNG java layihəsinin üstündə robot qurmağa çalışıram, amma standart açar sözləri götürmürəm (hələ öz sözlərimi əlavə etməyə çalışmadım). Win 10 maşınımda python 3.4.3 quraşdırılmış və Eclipse ilə birlikdə quraşdırılmış maven istifadə edirəm.

Bir maven layihəsi yaratmaqla və selenyum 3.4, testNG 6.8 və robot 3.0.2 üçün asılılıqları pom.xml-ə əlavə etməklə başladım, sonra 1.4.7 robot plaginini də əlavə etdim. Nəhayət, layihəni yenilədim, belə ki maven lazım olan bütün şeyləri yükləyir, beləliklə xaricdən bir şey qurmamalıyam.

Selenyumu sınamaq üçün (robot olmadan) src> test> java-da bir textNG sinfi yaratdım, sistemimdəki chromedriver.exe sənədinə işarə edən bir sistem xüsusiyyəti əlavə etdim və brauzeri açan və google-a gedən sadə bir test əlavə etdim. İşlədi, buna görə indi robot çərçivəsi əlavə etmək istəyirəm.

Src / test / robotframework / acceptance-də aşağıdakı məzmunu olan bir fayl yaratdım (baxmayaraq ki, bir yerdə selenium 2-dən sonra "selenium serverini başlat / dayandır" açar sözlərinin lazım olmadığını oxudum, amma onları silsəm heç bir şey dəyişmir):

Maven install kimi çalışdığım zaman:

Quraşdırma uğursuz oldu: 'Selenium Serverə Başla' adlı bir söz tapılmadı.

Yıxılma da uğursuz oldu: 'Selenium Serverini Durdur' adlı bir söz tapılmadı.

Bəs niyə robot açar sözlərin tətbiqini tapmır? Öz açar sözlərimin tətbiqlərini necə əlavə edə bilərəm?


2 Cavablar 2

Xüsusi metadata ilə birlikdə idarə olunan paket obyektlərini əldə etmək üçün, əldə etmək istədiyiniz obyektləri əl ilə pack.xml sənədinizə əlavə etməlisiniz. Məsələn, xüsusi bir obyekt almaq üçün, Hesab obyektini onsuz da belə almış ola bilərsiniz:

Sadəcə ad aralığındakı obyekt adını bu siyahıya əlavə etməlisiniz. Bu Salesforce istifadəçi interfeysindəki obyekt səhifəsində görünən "API Adı" dır

Yalnız sonrakı yerləşdirmə üçün həmin obyektə əlavə etdiyiniz sahələri almaq istəyirsinizsə, onları CustomField tipində göstərə bilərsiniz

Aldığınız bütün profillər üçün CRUD / FLS qaydalarının bu obyekti / sahəni əhatə edəcəyini unutmayın.

Lütfən, planlarla əlaqəli bu oxşar suala cavabımı da nəzərdən keçirin. İdarə olunan pakete aid gömrük obyektlərinin tərtibatı necə alınır ?.

Bu texnika ümumiyyətlə metadata API-də əksər (hamısı?) Obyektlərə aiddir.


Bəli, im və digər istifadəçilər Aptana'yı həmişə WP İnkişafı üçün istifadə edirlər və çox yaxşı işləyirlər. Yalnız Dev üçün WP və ya Stable yükləmələrinizi eklentinizin layihəsinə daxil etməlisiniz, hamısı. İndi bütün funksiyaları, vars, class istifadə edə bilərsiniz. istinad olunan WP yükləmə plagininizin içərisində.

Yeni bir proyektə başlayarsanız, eksternel qovluğunu və ya layihəni PHP Buildpath-tab nişanına əlavə etməkdənsə bəlkə də bir plagin. Alternativ olaraq xassələri kontekst menyusundan, layihədəki sağ siçan düyməsindən dəyişdirə və PHP Buildpath-da yolu və ya layihəni əlavə edə bilərsiniz.

Ubuntu Natty ilə Linux istifadəçiləri üçün

Linux yükləməyinizdə Komanda Menyusuna sahib deyilsinizsə (linux istifadə edirsinizsə, bu hackdən daha çox).

Komanda Menyusu vasitəsilə

Bir paket əlavə etmək üçün komanda menyusundan da istifadə edə bilərsiniz, həmçinin Aptana Studio 3-dən Core vasitəsilə WordPress daxilindədir. Əmrlər --> Paket İnkişafı --> Paketi quraşdırın -> Klik WordPress və daha çox tamam hamısı budur.

Bundan sonra bütün funksiyalarınız var və s.


6 Cavablar 6

İki təklifdən heç biri ilə razı deyiləm.

Sabitlər özlərində olmalıdır müvafiq dərslər, daimi bir sinifdə deyil in iki formadan biri təklif etdi.

Yalnız sabitlər sinifləri / interfeysləri olmamalıdır.

Bir sinif kredit kartı (daxili sinif deyil) mövcud olmalıdır. Bu sinif / interfeys, kredit kartlarına və UI_EXPIRY_MONTH və UI_ACCOUNT_ID sabitlərinə nisbətən metodlara malikdir.

BankAccount (daxili sinif deyil) bir sinif / interfeys olmalıdır. Bu sinif / interfeysdə daimi bank hesablarına nisbətən UI_ACCOUNT_ID kimi metodlar var.

Məsələn, Java API-də hər sinif / interfeys sabitlərinə malikdir. Daxili siniflərə qruplaşdırılmış və ya olmayan yüzlərlə sabit ilə bir Sabitlər sinifində / interfeysdə deyillər.

Məsələn, nəticə dəstlərinə aid olan bu sabitlər ResultSet interfeysindədir:

Bu interfeysdə nəticə dəstlərinə nisbətən metod imzaları var və tətbiq olunan siniflər bu davranışı həyata keçirir. Onlar sadəcə daimi sahib deyillər.

UI hərəkətlərinə aid olan bu sabitlər javax.swing.Action interfeysindədir:

Tətbiq edən siniflərin UI hərəkətlərinə nisbətən davranışı var, onlar daimi sahib deyillər.

Heç bir metodu olmayan ən azı bir "sabit" interfeysi (SwingConstants) bilirəm, ancaq yüzlərlə sabitə sahib deyil, yalnız bir neçəsi və hamısı UI elementlərinin istiqamətləri və mövqeləri ilə əlaqəlidir:

Düşünürəm ki, yalnız sabitlər dərsləri yaxşı OO dizaynı deyil.

sabitlərin çox səpələnmiş olduğu və hamısının tək bir "ana" sabitlər faylı halında təşkil edilməli olduğu ortaya çıxdı.

Bu % 100 səhv həll sabitlərin "tapmaq çətin" probleminə. Sabitlər, enumlar və ya interfeyslər kimi şeyləri texniki kriteriyalara görə qruplaşdırmaq (təəssüf ki, proqramçılar tərəfindən çox yayılmışdır) əsas bir səhvdir.

Qat memarlığı xaricində, şeylər öz domenlərinə görə qruplaşdırılmalıdır, və sabitləri daha çox səviyyəli elementlər olduqları üçün daha da çoxdur. Sabitlər, API-lərin bir hissəsi kimi istifadə edən siniflərin və ya interfeyslərin bir hissəsi olmalıdır. Yaşayacaqları təbii bir yer tapa bilmirsinizsə, API dizaynınızı təmizləməlisiniz.

Əlavə olaraq, tək bir böyük sabit sənəd Java-da inkişaf sürətini öldürür sabitləri tərtib zamanı istifadə edən siniflərə daxil edildiyi üçün hər hansı bir dəyişiklik bütün bu faylların və onlardan asılı olanların yenidən tərtib edilməsini məcbur edir. Hər yerdə istifadə olunan sabitləri olan bir dosyanız varsa, artan kompilyasiyanın faydasını böyük ölçüdə itirirsiniz: Eclipse-nin bu dosyadakı hər dəyişiklik üçün bütün layihənizi yenidən tərtib etdiyi üçün 15 dəqiqə kilidlənməsinə baxın. Və bu sənəd hər yerdə istifadə olunan bütün sabitləri ehtiva etdiyindən, onu tez-tez dəyişdirəcəksiniz. Bəli, şəxsi təcrübəmdən danışıram.


picocli digər Java CLI kitabxanalarından fərqlidir:

  • Mənbə formasına daxil edilmək üçün hazırlanmışdır. Bu, istifadəçilərə picocli-yə xarici bir asılılıq tələb etmədən picocli əsaslı tətbiqetmələri işə salmağa imkan verir.
  • Əsas platforma dəstək verdiyi zaman ANSI rənglərindən istifadə edərək cilalanmış və asanlıqla uyğunlaşdırılmış istifadə köməyi yaradır. dəstəklənən platformalardakı Java komut satırı tətbiqetmələriniz üçün

Nümunə istifadə kömək mesajı:

  • Zəhmsiz əmr sətri təhlili - yalnız sahələrə izahat verin
  • Hər şeyi - komanda xətti seçimləri ilə yanaşı mövqe parametrlərini də qəti şəkildə yazdı
  • həm GNU stili, həm də POSIX qruplaşdırılmış qısa seçimləri üçün tam dəstək (belə ki, & ltcommand & gt -xvfInputFile ilə yanaşı & ltcommand & gt -x -v -f InputFile ilə işləyir)
  • Minimum, maksimum və dəyişən parametr sayına imkan verən bir arity modeli, məsələn, "1 .. *", "3..5"
  • Alt əmrlər
  • Java 5 və daha yüksək versiyası ilə işləyir
  • Yaxşı qurulmuş istifadəçi təlimatı

İstifadə köməyi tətbiqetmənin üzüdür, buna görə yaradıcı olun və əylənin!

Picocli də fəal şəkildə saxlanılır. Orijinal yazıdan bəri bir çox yeni xüsusiyyət əlavə edildi, məsələn:


Videoya baxın: حل المشاكل الشائعة في تنصيب بيئة الجافا - JDK و Eclipse