Frage

Ich bin der einzige Entwickler für ein wissenschaftliches Konsortium an einer Universität im Nordosten hat seinen Hauptsitz. Alle meine Entwicklungsarbeit beinhaltet interne Tools, vor allem in Java, also nichts für die Öffentlichkeit freigegeben wird. Gerade jetzt, ich fühle mich wie meine Entwicklung Workflow ist sehr „Bastler“ und ist nichts, wie Sie bei einer erfahrenen Software-Entwicklungsfirma sehen würden. Ich wäre geneigt zu sagen, dass es nicht wirklich wichtig, da ich sowieso die einzige Entwickler bin, aber es kann nicht schaden, einige Änderungen vorzunehmen, wenn aus keinem anderen Grund, als meine Arbeit ein wenig leichter zu machen und ein paar bekommen mehr Technologien in meinem Lebenslauf. Gerade jetzt mein Workflow ist so etwas wie folgt aus:

  • ich die meisten meiner Entwicklung in Eclipse auf meinem Laptop. Alles ist lokal auf meinem Laptop gespeichert, und ich verwende keine VCS, noch hat mich wirklich meinen Backup-Code (außer gelegentlich es mir eine E-Mail, so kann ich es auf einem anderen Computer sehen - ja, ich habe dir gesagt, meine Entwicklungsumgebung braucht Arbeit).

  • Wenn ich mit einem Projekt getan und wollen es implementieren, oder wenn ich es nur testen wollen, verwende ich in Eclipse die eingebaute in JAR-Tool eine ausführbare .jar von meinem Projekt zu machen. Wenn ich externe .jar-Bibliotheken verwenden, verwende ich die Fat-Jar-Plugin diese .jars in meiner ausführbaren .jar aufzunehmen.

  • Nachdem ich die .jar schaffen, ich es manuell mit dem Server über SFTP laden und testen Sie es mit so etwas wie java -jar MyProject.jar.

Ach ja, habe ich schon erwähnt, dass ich nicht Unit-Test zu tun?

Die meisten eklatant Problem, dass ich zum ersten Mal beheben möchte ist mein Mangel an Quellcodeverwaltung. Ich mag git, weil es die Natur verteilt wird, aber es scheint nicht gut mit Eclipse zu integrieren, und ich habe gehört, dass es nicht sehr gut auf Windows funktioniert, die meine primären Entwicklungs OS sind. Also, ich bin Neigung in Richtung SVN, die ich mit etwas Erfahrung zu tun haben. Ich meine eigenen Server haben, und ich denke ich, dass für meine Quellcodeverwaltung verwenden werden, weil ich eher würde meine eigene Admin als mit Hochschulbürokratie zu tun haben. Ich hatte einige Probleme SVN schon einmal einrichten, aber ich werde es einen weiteren Schuss. Vielleicht werde ich auch so etwas wie Trac oder Redmine für Bug-Tracking, ToDo-Liste, etc?

installieren

Was über den Aufbau und den Einsatz? Es muss ein besserer Weg sein als die Verwendung von Fett-Jar und das Hochladen von Hand meines Glases auf den Server. Ich habe über Tools wie Ant und Maven gehört - Sie diese anwenden, was ich tun will? Wie kann ich die Verwendung loszulegen?

Ich glaube, ich würde schließlich zu Unit-Tests mit JUnit integrieren möchten. Auch wenn wahrscheinlich soll es sein, das ist nicht mein primäres Anliegen gerade jetzt, denn bisher meine Anwendungen nicht sehr komplex sind. Ich möchte wirklich jetzt auf die Vereinfachung und Rationalisierung meinen Workflow arbeiten, und dann werde ich in Unit-Tests erleichtern.

Sorry für die lange Frage. Ich denke, meine Frage läuft darauf hinaus, für einen einzigen Entwickler, welche Tools und Methoden können / sollen ich nicht nur verwenden, um meine Arbeit zu erleichtern, aber auch nur mich auf einige Technologien zu machen, die erforderlichen Kenntnisse in einer eigenen Entwicklung zu erwarten wäre Haus?


edit: Danke für die tollen Antworten bisher. Ich wollte nicht, behaupten, dass ich wollte meinen Workflow „enterprisey“ machen, nur um es zu tun, aber meine Arbeit einfacher zu machen und ein paar Technologien unter dem Gürtel zu bekommen, die typischerweise in Unternehmen Entwicklungsumgebungen verwendet werden. Das ist alles, was ich damit sagen wollte.

War es hilfreich?

Lösung

Es scheint mir, wie Sie tatsächlich eine ziemlich gute Vorstellung davon, was Sie tun müssen.

Mit Subversion (oder andere VCS) ist ein Muss. Auch wenn es eher die Einrichtung einer separaten SVN-Repository für Ihre arbeitsbezogenen Code klug sein, als eine persönliche Verwendung.

Sie können Subversion integrieren mit Eclipse ein Plugin wie Subclipse verwenden, die ich funktioniert recht gut gefunden habe.

Ich würde auf jeden Fall Ant oder Maven verwenden - meine Vorliebe Ant ist, weil es flexibler ist, und ich denke, es ist Ihre Entwicklung Stil mehr als Maven auch passen würde. Aber möchten Sie vielleicht auch schauen Apache Ivy , die Abhängigkeitsmanagement behandelt.

Im Grunde legen Sie eine Ant-Task, der Ihre Kompilierung läuft, bauen und Bereitstellungsschritte - so dass, wenn Sie ein endgültiges JAR-Paket erstellen, können Sie sicher sein, dass sie als Einheit getestet worden sind, als dass ein Teil Ihres Ant-Skript ist. Der beste Weg, mit Ameise zu beginnen ist auf einige Beispiele zu sehen, und lesen Sie die Handbuch .

Wie für Unit-Tests - Sie können nach und nach mit Unit-Tests aufbauen. Ich würde mit einem Code-Coverage-Tool JUnit in Verbindung empfehlen wie Cobertura (die einfach einzurichten ist) -. es wird Ihnen helfen zu verstehen, wie viel Code Ihre Tests decken und ist ein Indikator, wie effektiv Ihre Tests sind

Es kann auch sein lohnt sich so etwas wie Trac Einrichtung -. Es ist wichtig, dass man den Überblick über Bugs zu halten, und ein Wiki ist überraschend nützlich für die Dokumentation

Mit anderen Worten, all dies klingt wie Sie auf dem richtigen Weg sind, dann müssen Sie nur beginnen einige dieser Werkzeuge verwenden!

Andere Tipps

Wenn Sie auf verteilten Quellcodeverwaltung wirklich gesetzt sind, würde ich empfehlen, Sie sehen Bazaar . Seine GIT-like verteilte Quellensteuerung, die sich um die Durchführung sehr hohe Qualität verschmilzt angefertigt. Out of the box funktioniert es auf allen Plattformen, einschließlich Windows, und sie haben einen TortoiseBZR Kunden.

Wirklich obwohl jede Quelle Kontrolle ist besser als gar keine. Wenn Sie der einzige Entwickler sind, dann gibt es keine Notwendigkeit für etwas komplexer als SVN. Große Unternehmen und Projekte verwenden SVN die ganze Zeit mit wenig Problem.

Was Unit-Tests geht, sollten Sie sich vertraut machen mit JUnit . Die Tatsache, dass Sie sich bewusst Unit-Tests sind und wissen, sollten Sie es tun, ist noch einige Schritte voraus meisten Ad-hoc-Entwickler.

Mit der Versionskontrolle. Zeitraum. SVN hat groß Intergration mit Eclipse und Windows. Holen Sie sich das TourtisSVN Client für Windows und verwenden Sie das subclipse Plugin mit Eclipse.

Ich würde empfehlen, eine externe HD bekommen oder Server eines Ihrer Unternehmen verwenden für auf Ihrem Repository setzen und oft Backups tun. Subversion arbeitet gut mit Einsatz und Modernisierung sowie. Nur lernen, wie es zu tun, und Sie werden nie zurückblicken:)

Was Unit Testing, würden einige Leute sagen, dass der Weg zu gehen, aber ich habe nicht genug Beweise zu beginnen, die Praxis selbst gefunden. Wenn sombody auf diese Frage mich überzeugen können, sonst dann bitte tun!

Auch, schauen Sie nicht auf „Unternehmen“ Ihre Workflow - schauen, um es besser zu machen. Praktiken, die gut mit großen Teams und corperations für Sie arbeiten nicht gut funktionieren. Ich bin so ziemlich ein nur Entwickler selbst und kenne die Situation, die Sie in sind. Einfach alles versuchen und nur halten, was nach einer Weile natürlich anfühlt.

Aber stellen Sie sicher, SVN nur versuchen! Wenn Ihr Unternehmen einen Linux-Server mit Apache hat, ob Sie Ihren Server einrichten können dort DAV-SVN.

:)

Ich glaube, Sie die meisten Ihrer eigenen Fragen beantwortet.

  • Quellcodeverwaltung: pick SVN - einfache Installation, große Integration mit Eclipse (subclipse).
  • Verwenden Sie Ant Ihr Projekt erstellen und es (SCP / SFTP-Task)
  • bereitstellen
  • Halten Sie alle Ihre Einstellungen (Eclipse-Projekteinstellungen, bauen xmls, etc.) in SVN.
  • Bugzilla Verwenden Sie den Überblick über Ihre Fehler / Probleme / Wünsche / Ideen zu halten.

Es wäre sehr vorteilhaft mit der Versionskontrolle zu arbeiten. Starten Sie jetzt, zögern Sie nicht! Git bewegt sehr schnell, und es gibt bereits einen TortoiseGit entwickelt. SVN ist immer noch ein großer Standard zu arbeiten. Und ich habe nicht mit Mercurial gearbeitet, aber das ist eine andere VCS, die es wert ist ein Blick in.

Other than that, ich sehe nicht, warum Sie Ihren Workflow enterprisey sein muss. Es hat nur effizient und komfortabel sein. Das heißt, ich denke, Sie sollten versuchen, mit einem einfachen Texteditor arbeiten und von der Kommandozeile zu kompilieren. Die meisten der besten Programmierer der Welt verwenden immer noch, dass statt einer IDE, und es werden Ihnen helfen, die Prozesse unter Ihren Lieblings-IDE zu verstehen.

Überprüfen Sie die Pragmatische Programmierer out Pragmatische Starter Kit .

Es Schulen Sie sich auf die wichtigen Grundlagen der Software-Entwicklung, dass die Universitäten / etc. scheint darauf zu verzichten, wie Versionskontrolle, Unit-Tests und Projektautomatisierung (in dieser Reihenfolge), und tut es auf einem sehr aufgeschlossen.

Es wird Ihnen eine solide Basis von dort weiter zu machen.

Werfen Sie einen Blick @ Matt Raible des AppFuse.

Es enthält Maven und Unit Testing.

http://raibledesigns.com/rd/tags/appfuse

Auch wenn Sie es als das letzte, was gesagt, ich glaube, Sie sollten mit jUnit ohne Verzögerung beginnen.

Der Grund dafür ist, es ist wahrscheinlich die am einfachsten der Ambitionen Sie identifiziert haben, und die Werkzeuge sind mit ziemlicher Sicherheit bereits in der Eclipse-Build gebaut.

Machen Sie einen neuen Ordner in Ihrem Projekt mit dem Namen ‚jUnit‘.

Angenommen, Sie haben eine Klasse Employee haben, mit setAnnualSalary () und getMonthlySalary () Methoden.

Rechtsklick auf dem jUunit Ordner neu -> „JUnit-Testfall“. Dadurch wird eine neue Klasse. Nennen Sie es TestEmployee. Eclipse generiert die vorformulierten Material für Sie, wie üblich.

eine void-Methode mit einem Namen hinzufügen, beginnend mit 'test':

public void testSalaryCalc() {
    Employee emp = new Employee("John Doe");
    emp.setAnnualSalary(12000);
    assertEquals(1000,emp.getMonthlySalary());
}

Rechtsklick "Ausführen als" -> "JUnit-Test". (Das erste Mal von Eclipse können Sie auffordern, eine Einrichtung für das Projekt zu tun. Genau das tun, was es sagt.)

Wenn Mitarbeiter ordnungsgemäß funktioniert, werden Sie einen grünen Balken sehen. Sabotieren die Employee-Klasse, führen Sie den Test erneut, und Sie werden einen roten Balken sehen, sowie Ausgang zu sagen, was der Fehler war.

Wir gratulieren: Sie sind Unit-Tests

Ein Rechtsklick auf das übergeordnete Verzeichnis und „Ausführen als JUnit-Test“ der Wahl wird jede Klasse Testcase im Verzeichnis ausgeführt. Später können Sie jUnit in Ihren Build-Prozess integrieren, aber nicht befürchten, dass für jetzt.

Automatische Vervollständigung zeigt Ihnen alle Variationen auf assert() Sie verwenden können. Sie können bis darauf, und zielen auf Praktiken lesen, in dem die Testfälle vor der Implementierung zu schreiben, die sie durchläuft. Aber nur über die einfachen Sachen tun bekommt man große Vorteile.

Wenn Sie eine einrichten Versionskontrolle und einige Komponententests haben, würde ich eine kontinuierliche Integration Server betrachten (man wollte enterprisey sein, nicht wahr?).

Auch wenn Sie den einzigen Entwickler sind und bleiben, könnte dies helfen, ein paar Fehler aufzudecken. Dinge, die Sie vergessen haben, in oder Leuten zu überprüfen. Ein CI-Server prüft regelmäßig alle Quellen aus, macht einen bereinigter Build ein alle Tests ausgeführt wird. Es ist auch Kontakte, die Sie im Fall von Fehlern.

Dies gibt Ihnen die Garantie, dass Sie (oder eine andere Person) in der Lage ist, den Code zu überprüfen und bauen / Ihre Projekte ausgeführt werden.

Ich würde empfehlen, einen Blick auf Hudson zu nehmen

Wie schon andere gesagt haben, Sie schon genau wissen, was Sie tun müssen. Ein VCS ist ein Muss, CI oder Bug-Tracking zu viel des Guten kann (für einen einzelnen Entwickler eine Tabelle für Bug-Tracking ausreichen könnte).

Eine Sache, die Sie stark profitieren könnte, wird ein organisiertes Product Backlog zu halten. In Solo-Entwicklung, finden zu halten konzentriere ich mich auf den mit hohen Priorität Merkmalen und die Vermeidung von Featuritis einer meiner größten Herausforderungen. einen Rückstand zu halten hilft ungemein. Es braucht nicht viel mehr als eine priorisierte Liste von Features mit einigen Anmerkungen über den Umfang eines jeden sein. An meinem Arbeitsplatz, halten wir diese Informationen in Trac, aber auch hier kann eine Tabelle sein, alles, was Sie benötigen.

Und ich möchte in einem Stecker für Unit-Tests setzen, insbesondere Test Driven Development (TDD). Kent Becks Buch ist ein guter Anfang. Ich finde, dass TDD halten hilft mir, ehrlich und konzentrierte sich auf das, was ich wirklich tun müssen, vor allem auf einem Single-Entwickler Projekt ohne QA. Manchmal scheint es, wie der Code selbst schreibt.

Sie haben ein paar wirklich solide Antworten so kurz Beitrag einen Link zu einem Artikel über Test Driven Development Zugabe, die eine agile Praxis ist, die auf Ihrem Lebenslauf gut aussehen werden. TDD

Wenn Sie einen Windows-Server ausgeführt wird, wo Sie wollen Ihre SVN-Server setzen, verwenden Sie von Visual SVN als Server. Es ist super einfach zu installieren und zu verwenden, es unterstützt sowohl die Standardauthentifizierung und Windows-Authentifizierung. Es ist auch kostenlos zu benutzen.

Eclipse-hat einige Module mit einem SVN-Server zu integrieren, so dass einer von denen zu verwenden, oder die bereits vorgeschlagen, Tortoise SVN.

Alle bisherigen Kommentare, die Sie fast alles abgedeckt könnte jemals brauchen :-)

Ich möchte einen anderen Ansatz hinzufügen, wie (die Entwicklung Workflow) zu entwickeln.

Ich schlage vor, dass Sie den folgenden Artikel lesen, und obwohl es ein git Workflow können Sie die gleiche Idee für jedes andere Werkzeug verwenden Sie verwenden könnten.

http://nvie.com/posts/a-successful-git -branching-Modell /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top