• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

OOP

Started by NDK, 22.09.2011, 21:02:52

« predchdzajce - alie »

Agamemnon

#275
Quote from: matus217 on  21.11.2011, 14:02:00
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.

pouzi nejaku premennu:

string premenna = "defaultna hodnota";
if (test1) premenna = "hodnota 1";
if (test2) premenna = "hodnota 2";

return premenna;


edit:
este ku tomu jednemu returnu:
je to popularny mytus, ze jeden vystupny bod (return) pre metodu sprehladnuje kod a nvm co este... ale to je zvycajne nezmysel ;) a navyse by som povedal, ze je to individualna vec - niekomu sa zda prehladnejsie jedna vec a druhemu ina vec...
avsak, kedze mate take pravidla ako mate, tak to asi budes musiet fixnut :)
All code is crap.

42

AnvilOfFury

Quote from: matus217 on  21.11.2011, 14:02:00
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.

public Command getCommand(string podmienka){
  Command value = null;
  for(Command c : list){
    if(c == podmienka){
      value = c;
      break;
    }
  }
  return value;
}
Keep information to yourself - Knowledge is power. Think job security. Never provide documentation.
Use Real Tools - No "fancy-pancy" IDEs. Real developers only use vi.
Compiled = Ship It - User acceptance testing is an absolute waste of time.

matus217

Quote from: Agamemnon on  21.11.2011, 15:18:59
Quote from: matus217 on  21.11.2011, 14:02:00
Nevie mi niekto...

pouzi nejaku premennu:

string premenna = "defaultna hodnota";
if (test1) premenna = "hodnota 1";
if (test2) premenna = "hodnota 2";

return premenna;


edit:
este ku tomu jednemu returnu:
je to popularny mytus, ze jeden vystupny bod (return) pre metodu sprehladnuje kod a nvm co este... ale to je zvycajne nezmysel ;) a navyse by som povedal, ze je to individualna vec - niekomu sa zda prehladnejsie jedna vec a druhemu ina vec...
avsak, kedze mate take pravidla ako mate, tak to asi budes musiet fixnut :)
Nejako tak som nad tym rozmyslal tiez, ale nenapadlo ma nastavit premennu na typ hodnoty roomu alebo itemu a na zaciatku ju inicializovat na null... Ake lahke to bolo :D... aj tak je to taky proces dookola blizsie a este to treba po priradeni aj breakovat nech to nehadze na dalsiu podmienku... Ale nastastie mi to uz ide. Vdaka za navrh :)

matus217

AnvilOfFury: Vdaka, jojo akurat som to pred chvilou takto napisal tiez a uz mi to ide :-)

mirek

Quote from: matus217 on  21.11.2011, 14:02:00
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.

hmm... som si to teraz vyskusal a mne to nerobi. nespustas to pmd zle? alebo nepouzivas iny (najlepsie) ziadny ruleset ako ten, co sme dostali?
So say we all!

matus217

#280
Quote from: mirek on  21.11.2011, 17:38:46
Quote from: matus217 on  21.11.2011, 14:02:00
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.

hmm... som si to teraz vyskusal a mne to nerobi. nespustas to pmd zle? alebo nepouzivas iny (najlepsie) ziadny ruleset ako ten, co sme dostali?
PMD pouzivam ten zo scourforge myslim, tak ako bolo v navode - stiahnut a nainstalovat do netbeansu. Nevedel som ako pustit vo wine pod netbeansom - ten defaultny z kniznice indiana_jones. Ale tak snad to uz nebude robit problemy. Tie returny som opravil a uz to nevyhadzuje ziadnu chybu.

mirek

Quote from: matus217 on  21.11.2011, 18:17:03
Quote from: mirek on  21.11.2011, 17:38:46
Quote from: matus217 on  21.11.2011, 14:02:00
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.

hmm... som si to teraz vyskusal a mne to nerobi. nespustas to pmd zle? alebo nepouzivas iny (najlepsie) ziadny ruleset ako ten, co sme dostali?
PMD pouzivam ten zo scourforge myslim, tak ako bolo v navode - stiahnut a nainstalovat do netbeansu. Nevedel som ako pustit vo wine pod netbeansom - ten defaultny z kniznice indiana_jones. Ale tak snad to uz nebude robit problemy. Tie returny som opravil a uz to nevyhadzuje ziadnu chybu.

ved prave, ze v tom rulesete, co sme dostali, take pravidlo nie je (iba jeden return v celej metode). myslim, ze nepouzivas spravny ruleset.
So say we all!

matus217

Quote from: mirek on  21.11.2011, 18:50:14
Quote from: matus217 on  21.11.2011, 18:17:03
Quote from: mirek on  21.11.2011, 17:38:46
Quote from: matus217 on  21.11.2011, 14:02:00
Nevie mi niekto poradit ? Mam vsetko co mame mat doteraz hotove, akurat sa trapim s tou PMD kontrolou ktora mi stale robi bordel. Mam Parser a v nom analyzujem zadany prikaz. Na zaklade toho tam mam tusim 2 podmienky a tie returnuju ten dany prikaz ktory naslo. Ak nic nenajde tak za cyklom ktory prechadza prikazy mam return null. Problem je ze PMD vypisuje, ze return by mal byt iba jeden, a ja mam 3. Ako by sa to dalo upravit ? Mam to vobec riesit alebo to mam ignorovat ? Vdaka.

hmm... som si to teraz vyskusal a mne to nerobi. nespustas to pmd zle? alebo nepouzivas iny (najlepsie) ziadny ruleset ako ten, co sme dostali?
PMD pouzivam ten zo scourforge myslim, tak ako bolo v navode - stiahnut a nainstalovat do netbeansu. Nevedel som ako pustit vo wine pod netbeansom - ten defaultny z kniznice indiana_jones. Ale tak snad to uz nebude robit problemy. Tie returny som opravil a uz to nevyhadzuje ziadnu chybu.

ved prave, ze v tom rulesete, co sme dostali, take pravidlo nie je (iba jeden return v celej metode). myslim, ze nepouzivas spravny ruleset.
A ako sa dostanem k spravnemu rulesetu  ?  :trestac:

esperian

#283
aj mna by to zaujimalo :-)
toto som nasiel ale... "preklikam" sa v prikazovom riadku tam kde mam ten subor build.xml .. ale ked tam napisem ten prikaz tak sa nic nestane.. ale ked tam napisem ze build.xml tak mi otvori toto -> vid dole
Balíček taktiež obsahuje aj nástroj PMD spolu so zoznamom pravidiel, podľa ktorých sa bude váš projekt kontrolovať. Pokiaľ teda potrebujete skontrolovať kvalitu svojho výsledného kódu, napíšte do príkazového riadku nasledujúci príkaz (z koreňového priečinku, v ktorom sa váš projekt nachádza (nachádza sa v ňom aj súbor build.xml):
1   $ ant pmd


<?xml version="1.0" encoding="UTF-8"?>

<!-- You may freely edit this file. See commented blocks below for -->

<!-- some examples of how to customize the build. -->

<!-- (If you delete it and reopen the project it will be recreated.) -->

<!-- By default, only the Clean and Build commands use this build script. -->

<!-- Commands such as Run, Debug, and Test only use this build script if -->

<!-- the Compile on Save feature is turned off for the project. -->

<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->

<!-- in the project's Project Properties dialog box.-->
-<project basedir="." default="default" name="Adventure"> <description>Builds, tests, and runs the project Adventure.</description> <import file="nbproject/build-impl.xml"/>
<!-- There exist several targets which are by default empty and which can be used for execution of your tasks. These targets are usually executed before and after some main targets. They are: -pre-init: called before initialization of project properties -post-init: called after initialization of project properties -pre-compile: called before javac compilation -post-compile: called after javac compilation -pre-compile-single: called before javac compilation of single file -post-compile-single: called after javac compilation of single file -pre-compile-test: called before javac compilation of JUnit tests -post-compile-test: called after javac compilation of JUnit tests -pre-compile-test-single: called before javac compilation of single JUnit test -post-compile-test-single: called after javac compilation of single JUunit test -pre-jar: called before JAR building -post-jar: called after JAR building -post-clean: called after cleaning build products (Targets beginning with '-' are not intended to be called on their own.) Example of inserting an obfuscator after compilation could look like this: <target name="-post-compile"> <obfuscate> <fileset dir="${build.classes.dir}"/> </obfuscate> </target> For list of available properties check the imported nbproject/build-impl.xml file. Another way to customize the build is by overriding existing main targets. The targets of interest are: -init-macrodef-javac: defines macro for javac compilation -init-macrodef-junit: defines macro for junit execution -init-macrodef-debug: defines macro for class debugging -init-macrodef-java: defines macro for class execution -do-jar-with-manifest: JAR building (if you are using a manifest) -do-jar-without-manifest: JAR building (if you are not using a manifest) run: execution of project -javadoc-build: Javadoc generation test-report: JUnit report generation An example of overriding the target for project execution could look like this: <target name="run" depends="Adventure-impl.jar"> <exec dir="bin" executable="launcher.exe"> <arg file="${dist.jar}"/> </exec> </target> Notice that the overridden target depends on the jar target and not only on the compile target as the regular run target does. Again, for a list of available properties which you can use, check the target you are overriding in the nbproject/build-impl.xml file. -->
-<target name="pmd"> <echo message="Running PMD..."/> <delete file="pmd-report.html"/>
<!-- Linux Configuration -->
-<exec dir="pmd/bin" osfamily="unix" output="pmd-report.html" executable="sh"> <arg value="pmd.sh"/> <arg value="../../src"/> <arg value="html"/> <arg value="ruleset.xml"/> </exec>
<!-- Windows Configuration -->
-<exec dir="pmd/bin" osfamily="windows" output="pmd-report.html" executable="cmd.exe"> <arg value="/c"/> <arg value="pmd.bat"/> <arg value="../../src"/> <arg value="html"/> <arg value="ruleset.xml"/> </exec> <echo message="Done. Result is saved in file pmd-report.html."/> </target> </project>

mirek

Quote from: matus217 on  21.11.2011, 19:04:06
A ako sa dostanem k spravnemu rulesetu  ?  :trestac:
pozeram, ze je na stiahnutie v odkazoch na stranke text game I. - introduction a taktiez sa nachadza aj v tom projekte, co sa tam da tiez stiahnut.
So say we all!

Stardox

QuoteA ako sa dostanem k spravnemu rulesetu  ?  :trestac:

Myslim ze pouzivas spravny ruleset, ja som si tiez stiahol PMD z tej istej moodle stranky a tiez mi vyhadzovalo error pri viac returnoch.

Rajo

Quote from: Stardox on  22.11.2011, 00:11:27
QuoteA ako sa dostanem k spravnemu rulesetu  ?  :trestac:

Myslim ze pouzivas spravny ruleset, ja som si tiez stiahol PMD z tej istej moodle stranky a tiez mi vyhadzovalo error pri viac returnoch.

detto...

sulo

#287
Ruleset je správny, len ho asi nesprávne používate.

java -jar "cesta_k_PMD/lib/pmd-4.3.jar" "cesta_k_projektu" html "cesta_k_rulesetu/ruleset.xml" > report.html
start report.html

orsi

v ParserImpl mam premennu commands = new ArrayList<Command>();
ako v metode public Command getCommand(String string) prejst celym polom a skontrolovat ci ten prikaz na vstupe, teda ten string je v poli a vratiť ten prikaz?? a aby to ignorovalo velkost pismen.

Agamemnon

#289
Quote from: orsi on  22.11.2011, 07:23:03
v ParserImpl mam premennu commands = new ArrayList<Command>();
ako v metode public Command getCommand(String string) prejst celym polom a skontrolovat ci ten prikaz na vstupe, teda ten string je v poli a vratiť ten prikaz?? a aby to ignorovalo velkost pismen.

pouzijes nejaky for alebo foreach... kazdy item testujes, ci ma spravne meno... ak ma item spravne meno, cyklus prerusis a vratis ten item, ktory bol spravny...
c# ma metody ToLower()/ToUpper() pre string, ktore vratia povodny retazec so vsetky malymi alebo velkymi pismenami (string je immutable) - myslim, ze java ma nieco podobne... pouzi javadoc...

snad z tohto kod uz napises sam :)
All code is crap.

42

milaninho

Quote from: Stardox on  22.11.2011, 00:11:27
QuoteA ako sa dostanem k spravnemu rulesetu  ?  :trestac:

Myslim ze pouzivas spravny ruleset, ja som si tiez stiahol PMD z tej istej moodle stranky a tiez mi vyhadzovalo error pri viac returnoch.

ja som stiahol kostru projektu ktory bol poskytnuty, ten obsahuje aj pmd pripravene, staci spustit "ant pmd" z prikazoveho riadku v priecinku projektu a spusta mi spravny ruleset (bez obmedzenia poctu returnov). treba mat ovsem nainstalovany ant. bez ohladu na to ze ci ste spravny stiahli alebo nie, urcite spravny nepouzivate.

mirek

Quote from: milaninho on  22.11.2011, 15:33:23
Quote from: Stardox on  22.11.2011, 00:11:27
QuoteA ako sa dostanem k spravnemu rulesetu  ?  :trestac:

Myslim ze pouzivas spravny ruleset, ja som si tiez stiahol PMD z tej istej moodle stranky a tiez mi vyhadzovalo error pri viac returnoch.

ja som stiahol kostru projektu ktory bol poskytnuty, ten obsahuje aj pmd pripravene, staci spustit "ant pmd" z prikazoveho riadku v priecinku projektu a spusta mi spravny ruleset (bez obmedzenia poctu returnov). treba mat ovsem nainstalovany ant. bez ohladu na to ze ci ste spravny stiahli alebo nie, urcite spravny nepouzivate.

no - presne tak nam to hovorili aj na cvikach a odporucali prave tento postup.
So say we all!

milaninho

Quote from: mirek on  22.11.2011, 22:02:01
Quote from: milaninho on  22.11.2011, 15:33:23
Quote from: Stardox on  22.11.2011, 00:11:27
QuoteA ako sa dostanem k spravnemu rulesetu  ?  :trestac:

Myslim ze pouzivas spravny ruleset, ja som si tiez stiahol PMD z tej istej moodle stranky a tiez mi vyhadzovalo error pri viac returnoch.

ja som stiahol kostru projektu ktory bol poskytnuty, ten obsahuje aj pmd pripravene, staci spustit "ant pmd" z prikazoveho riadku v priecinku projektu a spusta mi spravny ruleset (bez obmedzenia poctu returnov). treba mat ovsem nainstalovany ant. bez ohladu na to ze ci ste spravny stiahli alebo nie, urcite spravny nepouzivate.

no - presne tak nam to hovorili aj na cvikach a odporucali prave tento postup.

:D by ma zaujimalo kto to hovoril tebe

Stardox

Quoteja som stiahol kostru projektu ktory bol poskytnuty, ten obsahuje aj pmd pripravene, staci spustit "ant pmd" z prikazoveho riadku v priecinku projektu a spusta mi spravny ruleset (bez obmedzenia poctu returnov). treba mat ovsem nainstalovany ant. bez ohladu na to ze ci ste spravny stiahli alebo nie, urcite spravny nepouzivate.

Tak ja som spravil toto, ze som stiahol uz pripraveny projekt z moodlu, potom som si stiahol ruleset z moodlu (scenar 06 dole), nainstaloval som PMD ako plugin v Netbeanse, pridal tam ruleset.xml a spustam si to cez Tools->RunPMD.

Ci to nedobre daco robim?

matus217

tak o niecom takomto pocujem prvy krat... kazdopadne, ked mam stiahnuty defaultny PMD zo sourceforge a kontrolujem to nim priamo v netbeanse, je to chyba ? alebo si to mozem takto nechat ? V podstate mam vsetko fixnute a nemam ziadnu chybu. Len ci nema ten customizovany ruleset nejake pravidlo naviac alebo podobne...

milaninho

je na vas aby ste si poriesili to aby ste splnali podmienky.. ak si stahujete vlastne PMDcka a instalujete pluginy, tak to robite na vlastne triko (na cviceniach predpokladam ze bol prezentovany postup ktory som pisal vyssie)..

matus217

Na cviceniach bol reprezentovany postup ist v netbeanse do tools plugins a pridat PMD. Preto sa pytam kompetentnych ci si mozem nechat sourceforge PMDcko alebo s tym mam nieco robit. Zatial som sa odpovede nedockal...

Stardox

Hmmm, nam cviciaci tiez hovoril ze cez Tool->RunPMD staci. Nevadi, nic sa zatial nedeje, opytam sa na cviceni, ze co povie cviciaci a vyriesi sa to.  :)

milaninho

tak potom je kompetetny vas cviciaci.. a treba sa pytat jeho..

Wolfdale


Ešte sme to nedokončili celkom, ale takmer sme už začali.