Temat: poskromienie NetBeans

Zainspirowany tematem O IDE do php postanowiłem zainteresować się NetBean'sem właśnie..Mam jednak kilka zastrzeżeń
1) brakuje mi opcji konwersji znaków: utf8, iso, windows-1250 itp.
2) brak sftp menadżer... coś jak w notepad++, w tym pomijanie projektów i pracowanie z konkretnym plikiem
3) podpowiadanie składni nie działa za dobrze, tzn. jeśli przekaże jakiś obiekt jako argument to nie jest mi wstanie zasugerować metod, właściwości z tego obiektu... (bawiłem się z opcjami Code Completion, bezskutecznie)

Czytałem na oficjalnym forum Netbeans, że nie ma i nie będzie wsparcia dla plików, które nie są częścią projektu tzn. np. podpowiadanie składni nie działa.

Czy można jakoś ten program ucywilizować?
Marcin Mackiewicz

Marcin Mackiewicz Programista JAVA, RS
Adware Polska

Temat: poskromienie NetBeans

Nie znalazłem perfekcyjnego IDE a programowałem już w wielu...

ad1. Nie ma konwersji kodowania. Wszystkie pliki muszą być w tym samym kodowaniu.
ad2. http://plugins.netbeans.org/plugin/13195/remote-file-s...
ad3. Podpowiada ale nie zawsze. W niektórych momentach nie rozszyfrowuje jakiej klasy jest dany obiekt. Można sobie z tym poradzić podając w komentarzu
$obj = new JakasKlasa();
mojaF( $obj );

function mojaF ( $x ) {
/* @var $x JakasKlasa */
$x->toString();
}
Nie wiem dlaczego programiści Netbeans nie użyli standardowych znaczników php dokumentor'a tylko wstawili tag do normalnego komentarza. Na netbeans.org to okomentowałem ale był mały odzew.Marcin Mackiewicz edytował(a) ten post dnia 01.05.13 o godzinie 23:44
Jacek R.

Jacek R. programista

Temat: poskromienie NetBeans

PHP ma typowanie dynamiczne, a do metod mogą być przekazywane dowolne typy. $x może być wszystkim, więc na siłę "utypizowanie" tego komentarzem psuje po prostu założenia PHP. Może osoba, której to przeszkadza, powinna się przesiąść na język statycznie typowany?

Można to też zrobić tak i będzie poprawniej (a i Netbeans powinien sobie poradzić):

$obj = new JakasKlasa();
mojaF( $obj );

function mojaF (JakasKlasa $x ) {
$x->toString();
}


Nie oczekujmy jednak od edytorów do PHP podpowiadania jak w Javie czy C#. Całym założeniem języka jest nie wiązać się typami, więc skąd edytor ma wiedzieć, czy to co przekazujesz to string, int czy może jakaś customowa klasa. W zależności od przepływu danych to może być cokolwiek.
Marcin Mackiewicz

Marcin Mackiewicz Programista JAVA, RS
Adware Polska

Temat: poskromienie NetBeans

Akurat dałem najprostszy przykład aby zobrazować co zrobić kiedy chcesz mieć podpowiadanie metod obiektu w momencie kiedy Netbeans sobie nie radzi. Nie zakładałem poprawności kodu pod względem składniowym czy ideologicznym.

Zamiplementuj sobie wzorzec Singleton w klasie Obj z metodą wywoływania np getInstance() i zrób w Netbeans
$var = Obj::getSingleton();
Netbeans na pewno nie rozszyfruje, że $var jest klasy Obj (jest to feature samego IDE). Gdzieś jakiś czas temu znalazłem jak sobie poradzić kiedy zaistnieje taka sytuacja... Przekazuję wiedzę dalej...

Temat: poskromienie NetBeans

Marcin M.:
Akurat dałem najprostszy przykład aby zobrazować co zrobić kiedy chcesz mieć podpowiadanie metod obiektu w momencie kiedy Netbeans sobie nie radzi. Nie zakładałem poprawności kodu pod względem składniowym czy ideologicznym.

Zamiplementuj sobie wzorzec Singleton w klasie Obj z metodą wywoływania np getInstance() i zrób w Netbeans
$var = Obj::getSingleton();
Netbeans na pewno nie rozszyfruje, że $var jest klasy Obj (jest to feature samego IDE). Gdzieś jakiś czas temu znalazłem jak sobie poradzić kiedy zaistnieje taka sytuacja... Przekazuję wiedzę dalej...

Jak wstawię zrzut ekranu na którym będzie pokazane, że jednak Netbeans podpowiada i to jeszcze z uśmiechem na ustach to wysyłasz butelkę Jack'a na wskazany adres - OK?

Temat: poskromienie NetBeans

hehe jeszcze pół roku temu uwielbiałem w php dynamiczne typowanie a teraz brakuje mi na sztywno określenie typu..chyba dojrzewam jako programista:P

Pomysł Jacka
$obj = new JakasKlasa();
mojaF( $obj );

function mojaF (JakasKlasa $x ) {
$x->toString();
}
działa i wydaje się być bardziej elegancki. Pamiętam, że w jakimś IDE do php, program podpowiadał składnie właśnie w oparciu o znaczniki phpdoc, jeśli ktoś się trzyma dokumentacji to chyba ma to sens? Przy okazji wymusza pisanie jej na bieżąco...

Plugin sftp działa tylko w wersji 6.5, niestety ale zawsze cośDominik Zawadzki edytował(a) ten post dnia 02.05.13 o godzinie 12:53
Marcin Mackiewicz

Marcin Mackiewicz Programista JAVA, RS
Adware Polska

Temat: poskromienie NetBeans

Przydało by się czytanie ze zrozumieniem...
Ani razu nie powiedziałem ze w NB podpowiadanie nie działa. Powiedziałem za to, że w pewnych momentach (konkretne przypadki) nie podpowiada prawidłowo. Wszystko zależy od od projektu. U mnie nie zawsze podpowiadał metody dla obiektu zwracanego z wywołania funkcji deklarowanej statycznie w jakiejś tam klasie.
Piotr Lewandowski

Piotr Lewandowski Programista
aplikacji
internetowych (PHP,
MySQL, SF2, Mag...

Temat: poskromienie NetBeans

Marcin M.:
Nie znalazłem perfekcyjnego IDE a programowałem już w wielu...

Nie wiem czy idealne, ale najlepsze IDE na jakim pracowałem dotychczas to PHPStorm. Może dlatego, że jest na prawdę zoptymalizowane pod prace z php. Ergonomia pracy i szybkość działania zostawia dla mnie w tyle konkurencje. Polecam wypróbować :-)
Kamil S.

Kamil S. Backend Engineer and
Symfony Developer

Temat: poskromienie NetBeans

Marcin M.:
Zamiplementuj sobie wzorzec Singleton w klasie Obj z metodą wywoływania np getInstance() i zrób w Netbeans
$var = Obj::getSingleton();
Netbeans na pewno nie rozszyfruje, że $var jest klasy Obj (jest to feature samego IDE). Gdzieś jakiś czas temu znalazłem jak sobie poradzić kiedy zaistnieje taka sytuacja... Przekazuję wiedzę dalej...

Wystarczy udokumentować odpowiednio metodę '@return Obj' i sprawa załatwiona, żadna magia.

Temat: poskromienie NetBeans

Kamil S.:
Marcin M.:
Zamiplementuj sobie wzorzec Singleton w klasie Obj z metodą wywoływania np getInstance() i zrób w Netbeans
$var = Obj::getSingleton();
Netbeans na pewno nie rozszyfruje, że $var jest klasy Obj (jest to feature samego IDE). Gdzieś jakiś czas temu znalazłem jak sobie poradzić kiedy zaistnieje taka sytuacja... Przekazuję wiedzę dalej...

Wystarczy udokumentować odpowiednio metodę '@return Obj' i sprawa załatwiona, żadna magia.

O tym właśnie pisałem ;)

Swoją drogą ponieważ PHP jest językiem dynamicznie i słabo typizowany to nie trzymanie podstawowego standardu jakim jest komentowanie kodu jest proszeniem się o kłopoty i zdecydowanie obniża jakość produktu. Bibliotek szczególnie.
Kamil S.

Kamil S. Backend Engineer and
Symfony Developer

Temat: poskromienie NetBeans

Zwłaszcza gdy pracuje się na frameworkach wykorzystujących 'Dependency Injection' można się tego szybko nauczyć. I nie wydaje mi się by 'utypizowanie' na siłę jak napisał wcześniej któryś kolega było psuciem założeń języka PHP. Dla PHP to wszystko jedno, a komentarze pomagają mi i IDE pracować komfortowo a przy okazji idzie z takiego kodu wygenerować automatycznie dokumentację.

Temat: poskromienie NetBeans

no dobrze, ale interesuje mnie jak sobie radzicie pisząc jakiś projekt w php, którego pliki są zakodowane w różnych standardach (dla projektu można ustawić tylko jeden) albo gdy do projektu trzeba dołączyć (pobrać) jakiś z plik spoza projektu?

Cały czas mam nawyki z pisania w notepad++ i trudno jest mi przesiąść się na IDE. Nigdy nie patrzyłem na jakąś witrynę pod względem projektu i teraz mam istny chaos (różne kodowania, pliki wszędzie porozrzucane).
Dawid Rokita

Dawid Rokita CTO picAds.pl

Temat: poskromienie NetBeans

Marcin M.:
Nie znalazłem perfekcyjnego IDE a programowałem już w wielu...

ad1. Nie ma konwersji kodowania. Wszystkie pliki muszą być w tym samym kodowaniu.
ad2. http://plugins.netbeans.org/plugin/13195/remote-file-s...
ad3. Podpowiada ale nie zawsze. W niektórych momentach nie rozszyfrowuje jakiej klasy jest dany obiekt. Można sobie z tym poradzić podając w komentarzu
$obj = new JakasKlasa();
mojaF( $obj );

function mojaF ( $x ) {
/* @var $x JakasKlasa */
$x->toString();
}
Nie wiem dlaczego programiści Netbeans nie użyli standardowych znaczników php dokumentor'a tylko wstawili tag do normalnego komentarza. Na netbeans.org to okomentowałem ale był mały odzew.

Powinieneć zrobić tak:
function mojaF (JakasKlasa $x ) {
$x->toString();
}

To błąd w sztuce, niekoniecznie brak w IDE :-)
Dawid Rokita

Dawid Rokita CTO picAds.pl

Temat: poskromienie NetBeans

Marcin M.:
Akurat dałem najprostszy przykład aby zobrazować co zrobić kiedy chcesz mieć podpowiadanie metod obiektu w momencie kiedy Netbeans sobie nie radzi. Nie zakładałem poprawności kodu pod względem składniowym czy ideologicznym.

Zamiplementuj sobie wzorzec Singleton w klasie Obj z metodą wywoływania np getInstance() i zrób w Netbeans
$var = Obj::getSingleton();
Netbeans na pewno nie rozszyfruje, że $var jest klasy Obj (jest to feature samego IDE). Gdzieś jakiś czas temu znalazłem jak sobie poradzić kiedy zaistnieje taka sytuacja... Przekazuję wiedzę dalej...

Jeżeli w phpdoc metody getSingleton ustawisz @return Obj to wszystko będzie ok :-)
Tomasz W.

Tomasz W. programista PHP /
web-developer

Temat: poskromienie NetBeans

Ad2) nie wiem jak jest w notepad++, ale w NetBeans jest upload, download i synchronizacja plików ze zdalnym hostem po ftp/sftp.

konto usunięte

Temat: poskromienie NetBeans

Tomasz W.:
Ad2) nie wiem jak jest w notepad++, ale w NetBeans jest upload, download i synchronizacja plików ze zdalnym hostem po ftp/sftp.

upload/download po ftp/sftp
Jarek Jakubowski

Jarek Jakubowski Senior PHP Developer

Temat: poskromienie NetBeans

Cały czas mam nawyki z pisania w notepad++ i trudno jest mi przesiąść się na IDE. Nigdy nie patrzyłem na jakąś witrynę pod względem projektu i teraz mam istny chaos (różne kodowania, pliki wszędzie porozrzucane).
I właśnie dlatego powinieneś używać IDE :) Co po ogarniać różne kodowania gdy UTF-8 to standard... Projekt jako tako może być porozrzucany (np. framework w iinym katalogu...) a w NetBeans ogarniesz to bez problemu :) NIe mówiąc już o podpowiadaniu składni wszystkich popularnych frameworków (jQuery, Symfony, Zend, CodeIgniter itp.)
Piotr Pikuła

Piotr Pikuła Zastępca Dyrektora
IT ds. produkcji
oprogramowania

Temat: poskromienie NetBeans

Jacek R.:
PHP ma typowanie dynamiczne, a do metod mogą być przekazywane dowolne typy. $x może być wszystkim, więc na siłę "utypizowanie" tego komentarzem psuje po prostu założenia PHP. Może osoba, której to przeszkadza, powinna się przesiąść na język statycznie typowany?

Nie oczekujmy jednak od edytorów do PHP podpowiadania jak w Javie czy C#. Całym założeniem języka jest nie wiązać się typami, więc skąd edytor ma wiedzieć, czy to co przekazujesz to string, int czy może jakaś customowa klasa. W zależności od przepływu danych to może być cokolwiek.
Nie wiem, czy brak silnego typowania to najważniejsze założenie tego języka, ale konieczność sprawdzania typu danych na początku każdej metody/funkcji to jedna z najgorszych rzeczy, które trzeba robić pisząc w PHP. Każda funkcja powinna robić to, do czego została stworzona i deklarowanie oczekiwanego typu danych poprawia czytelność, zmniejsza ilość tworzonego kodu, powoduje, że nie powtarzamy tego samego kodu w wielu miejscach.
Jeśli nie chcesz deklarować typu argumentu, to zostaje komentarz dokumentujący. Ale jeśli nie tworzysz dokumentacji w kodzie, to marne są szanse, że Twoje projekty będzie można rozwijać, a kod pielęgnować.
Z mojego doświadczenia wynika, że słabe typowanie fascynuje początkujących programistów, którzy nabierając doświadczenia zaczynają tęsknić za porządkiem w kodzie.

Temat: poskromienie NetBeans

Ja polecam phpDesigner'a. Używałem go kiedyś ale przeszedłem do NetBeans'a, bo...... jest bardziej popularny a warto znać narzędzia których używają potencjalni pracodawcy ;)
PhpDesigner jest płatny ale polecam go wypróbować.. program jest wygodny i ma wiele pomocnych funkcji (dlaczego go kiedyś kupiłem już nie pamiętam, ale jak ktoś jest zainteresowany szczegółami to sobie przypomnę). No ale NetBeans jest free i ma mnóstwo dodatków więc teraz już wolę NetBeans ;)

ps. zna ktoś dobry dodatek do zaznaczania kolumnowego do NetBeans?
Tomasz W.

Tomasz W. programista PHP /
web-developer

Temat: poskromienie NetBeans

Sam NetBeans potrafi zaznaczać kod kolumnowo - o ile mamy tu na myśli to samo.

Co do płatnych alternatyw dla NB to (podobno) tylko phpStorm.

Następna dyskusja:

NetBeans + kodowanie ISO-88...




Wyślij zaproszenie do