Idee. Konstruktor von Sites im Dialogmodus


    Wenn Sie Ihre Idee beschreiben, besteht immer die Befürchtung, dass sie überhaupt nicht neu ist oder dass ihre Umsetzung aus irgendeinem Grund, der Ihnen verborgen bleibt, überhaupt nicht möglich ist. Trotzdem möchte ich der Community die Idee eines neuen Ansatzes bei der Webentwicklung einfacher Sites bieten.

    Ich warne Sie sofort, in diesem Beitrag geht es um die Entwicklung von "Modellseiten". Es ist klar, dass die Entwicklung einer seriösen Website oder eines seriösen Dienstes tiefes Wissen und Erfahrung erfordert. Aber mit der Entwicklung von Blogs, Visitenkarten-Websites, Portfolios, Katalogen, kleinen Läden usw. könnte der durchschnittliche Internetnutzer gut zurechtkommen. Wenn ich wüsste "Wie?" ...

    Idee


    Die Quintessenz besteht darin, eine Website zu entwickeln, indem kurze Befehle in einer „fast natürlichen“ Sprache gegeben werden. Das heißt, in einer Sprache, die so natürlich wie möglich ist (soweit es die KI zulässt).

    Anstatt eine Art Konstruktor zu lernen, Terminologie zu lernen, die Grundlagen von HTML / CSS / PHP / JS / Schriftsatz / ... usw. zu beherrschen. Sie können einfach Ihre Lieblingsvorlage öffnen und sie mit einfachen Befehlen ändern.


    Wie könnte es aussehen?


    1. Der Benutzer speichert DialogCMS-Dateien auf dem Server
    2. Wendet sich an die Site, sodass der Startbildschirm möglicherweise angezeigt wird

    3. Angenommen, ein Benutzer beginnt mit einer leeren Seite. Am oberen Bildschirmrand sieht er die Systemanzeige.

    4. Der Benutzer gibt einen oder mehrere Befehle ein, möglicherweise unter Verwendung der Spracherkennung. Das System analysiert die Befehle und „übersetzt“ in eine formale Sprache. Wenn der Benutzer mit der Übertragung einverstanden ist, bestätigt er den Befehl, andernfalls formuliert er die Anforderung neu.

    5. Das System konfiguriert die Site als Antwort auf Befehle.

    6. Der Benutzer kann die Site anpassen. In diesem Beispiel ändert sich die Farbe der Kopfzeile (im Folgenden wird der Befehl und das Ergebnis in einem Bild angezeigt)

    7. Nachdem ein Element der Site mit der Maus ausgewählt wurde, kann der Benutzer damit arbeiten - verschieben, die Größe ändern, den Code ändern usw. In diesem Beispiel fügt der Benutzer dem Logo einen Schatten mit einem Sprachbefehl hinzu.

    8. Mit einfachen Befehlen kann der Benutzer die Site weiter verändern und einrichten.



    Hier scheint es, dass alles, was beschrieben wird, im Konstruktor einfacher zu tun ist als im Dialog. Dies ist teilweise richtig - Sie können die Farbe der Kopfzeile über das Kontextmenü ändern. Der vorgeschlagene Ansatz ist jedoch viel umfassender.

    Mit einem Befehl können Sie ein neues Modul, einen neuen Abschnitt oder ein neues Widget hinzufügen, eine Verbindung zum Bootstrap herstellen oder "eine animierte Galerie hinzufügen". Sie können die Leistung anzeigen oder den Anwesenheitszähler einstellen, ein Konto, Registrierungsrichtlinien, Backups, Lokalisierungen usw. einrichten.

    Der Benutzer kann auf einen beliebigen Text klicken, um ihn neu zu schreiben. Es kann leicht "alles heller machen" oder "in Blautönen versuchen" oder "am Hauptschieberegler hängen" oder "eine Linkseite hinzufügen" ...

    Tatsächlich entspricht das System (im Idealfall) der „Super-Smart-Schnittstelle“, bei der alles so aufgerufen wird, wie es der Benutzer vorschlägt. Der Benutzer sieht diese Benutzeroberfläche jedoch nicht und hat daher keine Angst.)

    Der Sinn des Systems besteht nicht darin, ein absolut universelles Tool bereitzustellen, sondern einer Person, die weit von der IT entfernt ist, dabei zu helfen, schnell eine einfache Site zu erstellen, Gedanken und Ideen zu testen. Jemand könnte mit diesem Ergebnis zufrieden sein, jemand wird verstehen, dass er nicht über genügend Systemfähigkeiten verfügt und eine Revision bei prof. Designer, jemand verwendet das System im Allgemeinen nur, um einen Prototyp zu erstellen, in Benutzerskripten zu arbeiten und TK für ein normales Studio zu schreiben, das bereits versteht, was er will ...

    Wie kann das gehen?


    Nun werde ich beschreiben, wie dieses System meiner Meinung nach funktionieren könnte.

    Auf den ersten Blick scheint es sehr schwierig zu sein, Befehle in einer natürlichen Sprache zu analysieren, selbst unter Berücksichtigung der Einschränkungen des Systems. Bei der Analyse typischer Befehle entsteht jedoch ein recht einfacher Algorithmus.

    1. Wir finden typische Ausdrücke wie „Spiel mit Schriften“, „Gummi-Design“ usw. führen sie aus.
    2. Wir bringen alle Wörter in die Ausgangsform
    3. Wir suchen die Wörter-Elemente: "Überschrift", "Keller", "Logo", "Telefon", "Name", "Seite", "hervorgehoben", "aktuell", "Link" ... etc. Es wird eine Menge solcher Wörter geben und sie werden in der Grundstruktur der Site beschrieben.
    4. Wir suchen nach klärenden Worten: "links", "rechts", "unten", "oben", "oben", "unten", "c" usw.
    5. Wir suchen die Wörter-Eigenschaften: "Hintergrund", "Farbe", "Schrift" ... etc.
    6. Wir suchen nach Bedeutungswörtern: "grün", "blau", Nummer, Anführungszeichen usw.
    7. Wir suchen nach Effektwörtern: "Schatten", "Farbverlauf", "Hervorheben", "Kursiv" ... usw.
    8. Wir werfen den Rest des Textes aus, teilen ihn durch Sätze, Aufzählungen (Wörter des gleichen Typs, getrennt durch Kommas oder „und“) - teilen sie in separate Phrasen (duplizieren Sie die Wörter der Phrase außerhalb der Aufzählungen).
    9. Wir vergleichen die Phrasen nacheinander mit den Proben. Wie zum Beispiel:
      a. Verfeinerung1 + Element1 + Element2 -> Element2, gemäß Erläuterung1 neben oder in Element1 einfügen.
      b. property1 + element1 + value1 -> Für element1, value property1, setze value1
      c auf gleich . element1 + eigenschaft1 + wert1 -> wie in b
      d. value1 + property1 + element1-> wie in be
      . Element1 + Wert1 -> Ändern Sie bei Element1 den Inhaltstext in Wert1.
      f. Element1 + Effekt1 -> Fügen Sie für Element1 den Effekt Effekt1 hinzu.
      g. Usw…
    10. Am Ausgang erhalten wir eine Reihe von Befehlen für den Konfigurator und eine Reihe von ihnen entsprechenden Phrasen in einer „formalisierten Sprache“ zur Anzeige für den Benutzer.

    Hinweis Dieser Algorithmus ist natürlich vereinfacht und entspricht dem Site-Erstellungsmodus. Zusätzlich kann es zum Beispiel einen Administrationsmodus und einen Textbearbeitungsmodus geben. Diese Trennung ermöglicht eine genauere Interpretation der Benutzerbefehle.

    Die Anforderungsverarbeitung kann in der Cloud ausgeführt werden, sodass Sie den Analysator aktiv entwickeln und neue Phrasen hinzufügen können (einschließlich neuer Phrasen, die Benutzer hinzufügen können).

    Eine formalisierte Antwort für den Benutzer und ein Befehl für den Konfigurator werden aus der Cloud zurückgegeben.

    Den Konfigurator halte ich für sinnvoll, dreistufig zu machen:

    1. Die erste Ebene ist abstrakt. Hier sind alle Elemente der Site aufgeführt, denen Eigenschaften, relative Position usw. zugewiesen / geändert wurden.
    2. Die zweite Ebene ist strukturell und sollte Seitenbeschreibungen in der "Auszeichnungssprache" enthalten, wie ich sie in meinem ersten Beitrag beschrieben habe . Habrahabr.ru/post/167525 . Das Endergebnis ist eine leicht bearbeitbare Struktur, die die gesamte Site darstellt. Basierend auf dieser Struktur wird der Basiscode der Site generiert.
    3. Die dritte Ebene ist die Codeebene. Auf dieser Ebene kann ein fortgeschrittener Benutzer Änderungen direkt am Site-Code vornehmen. Wenn Sie beispielsweise ein Element in Chrome bearbeiten, übertragen Sie die CSS-Eigenschaften in die Eigenschaften des Elements. Auch auf dieser Ebene können verschiedene "Chips", Bibliotheken, Dekorationen etc. angeschlossen werden.


    Dieses Design ermöglicht es jedem Team, sich auf jeder Ebene leicht in Änderungen zu verwandeln. Dann wird auf der Basis der 1. Ebene eine Struktur gebildet und Änderungen von der 2. Ebene daran vorgenommen. Der Site-Code wird aus der Struktur generiert, die durch auf der dritten Ebene gespeicherte Änderungen ergänzt wird. Die Ausgabe ist der Site-Code.

    Vorteile des Systems:


    1. Extrem niedrige Eintrittsschwelle. Tatsächlich kann jeder Internetnutzer eine Website erstellen. Wenn er seine Gedanken völlig unkonventionell ausdrückt, beeinträchtigt etwas nicht den Blick auf die Liste typischer Ausdrücke und das Verständnis der Terminologie der Site-Erstellung anhand von Beispielen.
    2. Selbsttraining. Während der Entwicklung der Site sieht der Benutzer, wie sich seine Phrasen in „richtig“ verwandeln, was ihn an die richtige Terminologie usw. gewöhnt.
    3. Flexibilität. Im Gegensatz zu typischen Designern kann die Komplexität der Website viel höher sein.
    4. Neue Technologie. Mit einfachen Befehlen kann der Benutzer Bibliotheken und Frameworks mit der Site verbinden, ohne ihre Arbeit und Integration mit anderen Teilen der Site im Detail zu analysieren.
    5. Alternative Anwendungsfälle. Zum Beispiel Rapid Prototyping.

    Ich werde die Minuspunkte nicht im Detail auflisten :)
    Die wichtigsten sind meiner Meinung nach: Komplexität der Implementierung, mögliche Sicherheitsprobleme und andere Nuancen, die damit zusammenhängen, dass der Benutzer nicht wirklich versteht, was "tut" ...

    Warum ist das nötig?


    Das Schwierigste für einen Anfänger sind oft nicht bestimmte Themen, sondern das Fehlen eines gemeinsamen Verständnisses des Prozesses, der Konzepte und der Terminologie. Er weiß einfach nicht, dass die Zeile, in der er den Text eingibt, um etwas zu finden, beispielsweise "ein Suchformular-Widget-Anzeigemodul" genannt werden kann ...

    Hinweis. Als abstraktes Beispiel. Oft beobachte ich, wie Anfänger und selbst erfahrene Benutzer versuchen, in Word oder Power Point etwas zu tun, das nicht ganz dem Standard entspricht. Wenn sie wissen, wie ein Team heißt, gehen sie über die Hälfte der Menüregisterkarten, indem sie auf Schaltflächen und Lesetipps zeigen. Mit einem ähnlichen „Sprachassistenten“ könnte man dann einfach sagen, dass das Bild dunkler wird, und das ist alles.

    Für Anfänger gibt es viele verschiedene Designer, die aber nicht viel helfen. Oder der Benutzer sollte sich auf eine elementare Vorlage ohne die Möglichkeit der Feinabstimmung beschränken. Oder der Designer benötigt nicht weniger Zeit zum Erlernen als jedes andere CMS, während er dem letzteren in seiner Flexibilität weit unterlegen ist.


    Beispiel: Ein bekannter Site Builder verfügt über eine solche Schnittstelle, nachdem ein Benutzer eine neue Site registriert hat. Für Anfänger ist es nicht einfach, alles selbstständig herauszufinden.

    Das Problem ist, dass der Benutzer zuerst verstehen muss, was er tun möchte, es sich vorstellen, es mit den richtigen Begriffen beschreiben und erst dann damit beginnen muss. Dieser Ansatz steht nicht im Einklang mit der Idee eines Konstrukteurs für Anfänger.

    Gedanken zur Umsetzung.


    Im Moment befindet sich alles nur auf der Ebene der Ideen, obwohl dies ausgefeilter ist, als sie hier beschreiben könnten. Wenn Gleichgesinnte auftauchen, werde ich gerne über die Umsetzung sprechen.

    Ich denke, hier gibt es zwei Möglichkeiten: Entweder ein CMS von Grund auf neu zu entwickeln oder ein Add-On über ein vorhandenes CMS wie Drupal. Angesichts der enormen Fähigkeiten von Drupal zur Erweiterung seiner Funktionalität, aber der relativ hohen Einstiegsschwelle, halte ich ein solches "intelligentes Addon" für Anfänger für sehr interessant.

    Mit einem gut entwickelten System zur Analyse von Befehlen in einer natürlichen Sprache in der Cloud können Sie in Zukunft andere Arbeitsbereiche in Betracht ziehen, in denen komplexe Schnittstellen und Konzepte unerfahrene Benutzer abschrecken. Nach den Kommentaren zu urteilen, habe ich die Hauptidee des Systems, die von den Details

    mitgerissen
    wird, anscheinend nur unzureichend formuliert.

    Deshalb betone ich einige Punkte:
    1. Ich schlage nicht vor, zur Zeit der Konsolen zurückzukehren. Im Gegenteil, ich schlage vor, den Weg zu intelligenten Entwicklungswerkzeugen weiter zu gehen.
      Idealerweise teile ich dem System mit, welche Site ich haben möchte - und sie erstellt sie in Echtzeit ... Ich nehme Korrekturen vor, experimentiere usw. All dies ohne Terminologie, Regeln, Befehle, Schritte usw.
      So viel wie möglich jetzt - ich habe versucht, in einem Beitrag zu präsentieren.
    2. Teams können sehr unüblich sein. Da das System die aktuelle Konfiguration, das Vorhandensein / Fehlen von Elementen auf dem Bildschirm usw. berücksichtigt - Sie brauchen keine starke KI, um zu verstehen, was der Benutzer gerade will
    3. Das vorgeschlagene System ersetzt nicht das übliche CMS, sondern ergänzt es. Der Benutzer kann die Site über die übliche Symbolleiste anpassen, Texte und Elemente bearbeiten, ähnlich wie sie auf wix.com implementiert sind. Aber wenn er auf etwas Unverständliches stößt, kann er eine Frage an das System stellen und das Problem sofort lösen. Er sucht nicht in den Foren nach Informationen und denkt nicht darüber nach, wie er Wissen in diesem speziellen Fall anwenden soll.
    4. Die Spracheingabe ist nur eine Eingabemöglichkeit. Der Benutzer kann Befehle in Text eingeben und "visuelle Befehle" können einfach in einem Editor wie wix.com ausgeführt werden

    Jetzt auch beliebt: