[PYTHON] Eine Geschichte über die Einführung von Django anstelle von Rails bei einem jungen Start-up

Schön, Sie kennenzulernen. Mein Name ist Matsunaga von LOGICA Co., Ltd. Ich habe mich für Django entschieden, um ein neues Produkt zu entwickeln, aber da Django ein Anfänger ist, wollte ich das Wissen aller kennen und einen Adventskalender erstellen. Vielen Dank.

Wir haben noch nichts technisch Einzigartiges gemacht und haben uns daher entschlossen, unsere eigenen Erfahrungen zu veröffentlichen.

Adoptierte Django bei einem jungen Start-up

Während die Popularität des maschinellen Lernens zugenommen hat und das Bewusstsein für Python ebenfalls zugenommen hat, habe ich den Eindruck, dass sich das Bild von "Python = zur Berechnung" verbreitet. Auch im Fall des Websystems ist Rails sehr reich an Programmierlerndiensten wie Techcamp und Progate, so dass ich denke, dass die Anzahl der Leute, die Rails machen, zunimmt, insbesondere bei Startups (die Anzahl der Samples ist nicht groß). Aber)

Bei Startups, insbesondere bei Unternehmen, bei denen sehr junge Leute wie wir Gründer sind, gibt es viele Fälle, in denen es keine Ingenieure mit Berufserfahrung gibt, und ** Leichtigkeit des Lernens ** wird sehr wichtig. Ich denke, es ist natürlich, dass Rails und PHP-Frameworks (nicht vertraut) mit vielen japanischen Informationen oft ausgewählt werden.

Ich denke, es gibt viele (?) Venture-Unternehmen, die Django in Japan einsetzen, aber ich glaube nicht, dass es viele junge Venture-Unternehmen gibt. Während viele berühmte Unternehmen es in Übersee übernommen haben, habe ich das Gefühl, keine Staatsbürgerschaft in Japan erhalten zu haben.

Dieses Mal habe ich zusammengefasst, warum ich in dieser Situation Django anstelle von Rails gewählt habe und was gut und schlecht daran war, Django als junges Start-up zu wählen. ** * Dieser Artikel beschreibt nicht die Technologie, Leistung, das Design usw. von Django. ** ** * Kann auf Jung- und Samen-Startups beschränkt sein **

Es ist ein sehr Nischenartikel, aber wenn Sie möchten, bleiben Sie bitte bis zum Ende bei mir.

Unsere aktuelle Situation

Wir verwenden eine Cross-Search-Site für Hotels, um die Hotelsuche zu vereinfachen, insbesondere für das Problem der "umständlichen Hotelsuche / -reservierung", obwohl Reisen eine entspannende Reise ist. Ich entwickle mich. Es ist nicht so etwas wie Jaran oder Rakuten Travel, sondern eine Vergleichsseite ähnlich Travelko-chan und trivago.

sakutabi.com

Ich habe es vor ein paar Tagen veröffentlicht, aber ich habe noch nicht alle Fehler und ** eine große Menge warmer manueller Eingaben ** vernichtet. (Um den Vergleich zu reduzieren, habe ich versucht, automatisch verschiedene Plan- und Raumnamen auf jeder Reservierungsstelle zu identifizieren, aber dies konnte nicht ausgeschlossen werden, daher werde ich dies manuell tun ** ) ~~ Nicht beim Schreiben eines Adventskalenders ~~

Derzeit entwickeln wir zwei separate Django-Projekte, den Crawler, der Informationen zu Stellenangeboten erfasst, und die Vergleichsseite selbst. ** Das Unternehmen ist immer noch alleine, daher entwickle ich es auch selbst.

Autorenniveau zu Beginn der Entwicklung

Anforderungen / Anforderungen an die Technologieauswahl

Die Einstellung bedeutet nicht, dass die Anzahl der Entwickler dramatisch zunehmen wird, und da die Anzahl der Entwickler für eine Weile gering ist, betonen wir, dass es sowieso ** einfach ** ist.

  1. Ich möchte die Sprache und den Rahmen vereinheitlichen
  2. Es gibt einen Verwaltungsbildschirm (oder Sie können ihn sofort erstellen)
  3. Ich möchte die Kosten für neues Lernen so niedrig wie möglich halten

Das erste ist das Problem der Kopfwechsel- und Lernkosten. Wenn Sie den Crawler (und den Verwaltungsbildschirm) in Python (Django) und die Medien in Rails schreiben, ist es für Sie langweilig, den Unterschied in der Migrationsdefinition zu absorbieren oder eine separate Modelldatei zu schreiben. Ich hatte das Gefühl, dass ich es wiederverwenden wollte. Ich bin der Meinung, dass der Zwei-Schwert-Stil des Full-Stack-Frameworks nicht in der Phase von ein oder zwei Entwicklern durchgeführt werden sollte, bevor es wiederverwendet wird.

Was den zweiten Verwaltungsbildschirm betrifft, selbst wenn ich mich für Rails entschieden habe, könnte ich mit Edelsteinen umgehen, daher war mir das hier nicht so wichtig.

In Bezug auf die dritten Lernkosten, wenn ich alleine bin, ** studieren = Entwicklung stoppen **, und wenn ich nicht daran gewöhnt bin, werde ich Zeit verschwenden, also werde ich die Sprache und den Rahmen verwenden, an die ich gewöhnt bin. Es war eine absolute Voraussetzung, um es zu benutzen. Die Verwendung von zwei Frameworks erhöht auch den Lernaufwand, sodass ich von Anfang an dachte, ich würde eines verwenden.

** Aufgrund der Berücksichtigung der drei oben genannten Bedingungen habe ich mich für Django entschieden. ** ** **

Warum ich mich für Django entschieden habe

Da es sich um ein Startup in der Startphase handelt, besteht eine hohe Wahrscheinlichkeit, dass das, was Sie machen, durch Schwenken usw. gelöscht wird. ** Da es eine wichtige Voraussetzung ist, dass ich, der Gründer, auch an der Entwicklung teilnehme, ** bin ich am einfachsten zu schreiben * * Priorisiert das.

Persönlicher Grund

Infolgedessen war Python die überwiegend vertraute Sprache, daher habe ich mich für Django entschieden, ein Python-Framework mit einem Verwaltungsbildschirm. Ich bin eher an Rails gewöhnt, aber ich war auch kein erfahrener Rails-Ingenieur. ** Ich habe Django nicht zu einem technischen Vergleich zwischen Rails und Django gemacht. ** ** ** Ein weiterer Grund ist, dass ** Crawler daran gewöhnt sind, in Python zu schreiben ** (ich habe mir in meinem vorherigen Job häufig Crawler angesehen).

Übrigens, nachdem ich mich für die Vereinheitlichung mit Python entschieden hatte, schrieb ich ein Bereitstellungsskript mit Fabric und Cuisine, sodass alles außer dem Medien-Frontend aus Python besteht. Wenn Sie Django für alle verwenden, ist es einfacher, einige Bereitstellungsskripts zu verwenden.

Die Analyse ist auch einfach, da Python über eine vollständige Bibliothek verfügt. Ich habe eine Weile kein Gorigori-Analyseskript mehr geschrieben, aber ich denke, dass es für die Analyse etwas einfacher sein wird, wenn Sie einen Stapel usw. mit Djangos ORM in einem Django-Projekt erstellen.

Gründe für die Einstellung

Obwohl die Anzahl der Rails-Ingenieure gestiegen ist, glaube ich nicht, dass die Anzahl der Ingenieure über einem bestimmten Niveau stark zugenommen hat. Da die Wahrscheinlichkeit von Ingenieuren beim Berühren von Django verringert wird und es nur wenige Startups gibt, die Django übernehmen, fällt es von selbst auf. Daher denke ich, dass sich die Schwierigkeit bei der Einstellung zwischen Rails-Ingenieuren und Django-Ingenieuren nicht wesentlich ändern wird. Ich tat.

Dies ist jedoch alles unter der Voraussetzung einer Rekrutierung in der Mitte der Karriere, und ich mache einen großen Fehler **, daher werde ich später in diesem Artikel darüber schreiben.

Was ist gut an Django?

Es ist alles Django, also ist es einfach, ohne den Kopf zu wechseln, und es ist einfach, den Code zu verwenden. Danach ist es einfach, da Sie das Ergebnis des Crawls auf dem Verwaltungsbildschirm sehen können. Es ist ein vollständiger Stapel. Wenn Sie also nach den gewünschten Funktionen suchen, werden Sie sie finden. Da die Dokumente umfangreich sind, ist dies vorerst kein Problem. ~~ Kein einzigartiger Vorteil von Django ~~

Probleme mit Django (Dinge, die problematisch zu sein scheinen)

Nun, das Hauptthema (lacht) ** Eigentlich habe ich bisher keine technischen Probleme w ** Das liegt daran, dass die Menge an Code immer noch gering ist und wir nicht im Begriff sind, die Details zusammenzudrücken. Es ist ein Projekt, das ich kürzlich gemacht habe, daher muss ich die Version von Django nicht aktualisieren, und es fühlt sich an wie "Oh, das Full-Stack-Framework ist praktisch."

Es gibt jedoch einige Punkte, die für junge Startups in der Startphase subtil sind. Das "Ich habe einen großen Fehler unter der Voraussetzung der Rekrutierung in der Mitte der Karriere gemacht", das ich zuvor geschrieben habe, ist in den folgenden Inhalten enthalten.

1. 1. Es ist schwierig, einen Praktikanten oder einen Teilzeitjob zu finden (vielleicht)

Ich sagte, dass es schwierig sein könnte, Mitarbeiter einzustellen, weil ich nur Leute mit Berufserfahrung suchte, also suchte ich eigentlich keinen Praktikanten oder Teilzeitjob ohne Erfahrung in Django.

Junge Start-ups stellen aufgrund finanzieller Probleme und Bekanntschaften häufig Menschen der gleichen Generation ein ** und Teilzeitjobs aufgrund harter Arbeit und ** der Wichtigkeit, "irgendetwas zu tun" ** Ich denke, dass Praktikant oft adoptiert wird. Mit anderen Worten

Fähigkeiten zum Zeitpunkt der Einstellung >>>>>> Aufholgeschwindigkeit & Kultur fit

Es wird sein. Unter diesem Gesichtspunkt ist Django keineswegs anfängerfreundlich (Details siehe unten), daher denke ich, dass dies die Einstellungsmöglichkeiten für junge Startups einschränken wird w **

Im Vergleich zu Rails hat Django weniger Unterrichtsmaterialien, die für Anfänger leicht zu verstehen sind ** und ** weniger Informationen auf Japanisch **, also für Anfängerprogrammierung ** "Unbekannte Programmierung" plus "Englisch" Es wird ein Schmerz sein **, und ich denke, es ist ziemlich schwierig, von einem vollständigen Anfänger auszugehen. (Ob ein vollständiger Anfänger zuerst das Full-Stack-Framework ausführen soll oder nicht)

Ich glaube auch nicht, dass es Menschen in derselben Generation gibt, die Erfahrung mit Django w haben (ich bin 24 Jahre alt). Auch wenn Rails weiß, dass er ein Anfängeringenieur ist, kennt er die Existenz von Django nicht. Ich denke sogar Python ist verdächtig. Selbst wenn Sie es wissen, denke ich, dass Sie "Dijango" lesen (Quelle bin ich)

Da es unabhängig von der Generation nur wenige Benutzer gibt, ist die Anzahl der Personen und Orte, an denen Sie leicht Fragen stellen können, begrenzt. Daher wird die Fähigkeit, Dokumente (Englisch) und Quellcode zu lesen, relativ wichtig. ** Für Ingenieure ist es jedoch selbstverständlich, Dokumente und Quellcode zu lesen **. Für diejenigen, die Ingenieure werden möchten, ist es meiner Meinung nach besser, mit Django zu beginnen, da dies eine gute Angewohnheit darstellt.

Auf jeden Fall ** Ich denke, es braucht mehr Energie als das Starten von Rails **

Ich denke jedoch auch, dass Python eine gute Sprache ist, die für Anfänger leicht zu lernen ist.

2. Hohe Forschungskosten

Obwohl es sich teilweise mit dem ersten Punkt überschneidet, denke ich, dass die Forschungskosten hoch sind, da es auf Japanisch wenig Informationen gibt, es nur wenige (inländische) Benutzer gibt und es nur wenige Lernsitzungen gibt.

Besonders für Startups, bei denen junge Leute nicht immer hochqualifiziert sind, ist es sehr schön, sofort ein Beispiel zu finden, wenn sie sich fragen, wie das geht. Glücklicherweise sind Python und Django auf der Welt nicht minderjährig, daher gibt es viele Bibliotheken. Ich denke jedoch nicht, dass es ein gutes Start-up ist, sich Sorgen zu machen, sie nicht zu kennen oder zu implementieren. Es ist leicht, Englisch zu finden, daher ist es schwieriger, sich auf Englisch zu konzentrieren, als "Ich kann es nicht finden".

In Bezug auf Studiensitzungen denke ich, dass ein Grund dafür ist, dass es keinen Religionskrieg wie das Javascript-Framework und die Auswahl von Werkzeugen gibt und dass es nicht viele Themen gibt, die überhaupt diskutiert werden müssen. Es könnte etwas mit der Idee von Python zu tun haben.

Auch wenn es ein egoistisches Bild ist, gibt es ein Bild, dass Menschen, die Django für geschäftliche Zwecke verwenden, nicht oft in Studiensitzungen erscheinen. W.

Ich wünschte, es gäbe einen Ort, an dem mehr Wissen über die Entwicklung mit Django ausgetauscht werden könnte. Wenn das Unternehmen also einen kleinen Spielraum bei den Entwicklungsfähigkeiten hat, treffen sich Django (nicht auf das Python-Framework beschränkt) und lernen Ich möchte es auch tun. Wir können möglicherweise mit Unternehmen sprechen, die Django übernommen haben.

Zusammenfassung

Gute Sache(?)

Schlechte Dinge / Sorgen

** Wenn es zu Beginn der Entwicklung eine andere Person als mich gibt, die der Hauptentwickler ist, habe ich wahrscheinlich Rails w gewählt. ** Ich habe Django gewählt. ** Ich bin im Moment der einzige Entwickler ** und der Crawler ist Python Der ** persönliche Zustand **, in den ich zu schreiben gewöhnt war, war der größte.

Ich habe über verschiedene Technologieauswahlen geschrieben, aber in erster Linie ist es für Startups wichtig, mit ** Produkten ** schnell zu arbeiten und Wert zu liefern. Hören Sie also auf, tief nachzudenken, und geben Sie Ihr Bestes in der Entwicklung! !!

P.S. Wir suchen auch Freunde, also kontaktieren Sie uns bitte, wenn Sie daran interessiert sind! https://www.facebook.com/masaru.matsunaga.9

Recommended Posts

Eine Geschichte über die Einführung von Django anstelle von Rails bei einem jungen Start-up
Die Geschichte, einen süßen und schmerzhaften Blick auf benutzerdefinierte Benutzer auf Django zu werfen
Eine Geschichte über die Implementierung eines Anmeldebildschirms mit Django
Eine Geschichte über die Änderung des Master-Namens von BlueZ
Die Geschichte des Django-Modellfeldes verschwindet aus der Klasse
Eine Geschichte über das Clustering von Zeitreihendaten des Austauschs