Test javascript library Packages JS

Status
Niet open voor verdere reacties.

StijnDeWitt

Gebruiker
Lid geworden
11 apr 2009
Berichten
11
Hoi,

Ik heb een javascript library gemaakt om packages en namespaces mee te kunnen simuleren in javascript. Javascript kent namelijk van nature geen keyword package en alle code in een website zit daardoor eigenlijk in één grote vergaarbak.

Ik ben op zoek naar mensen met redelijk wat javascript ervaring om het eens uit te proberen. Mijn framework is namelijk bedoeld om mee te programmeren. Het is dus geen applicatie voor eindgebruikers.

Als je geïnteresseerd bent moet je maar eens kijken op mijn website, daar kun je het downloaden, de documentatie bekijken en ik heb een getting started guide om aan de slag te gaan.

Laat me horen wat je er van vindt, ik ben op zoek naar feedback om dingen aan te passen voor de 'release'.
 
Even een kleine bump (0 reacties is toch erg sneu) en misschien wat verduidelijking. Als je de site bezoekt kun je daar ook eenvoudig een test pagina bekijken en dan even aangeven of het werkt in jouw browser. Alle uitleg staat op de test pagina en de site zelf.
 
Package.js

Ik heb nogal wat 'ongeorganiseerde' javascript op mijn site, heb package.js opgehaald en zal hem deze week eens proberen toe te passen.

Joop.
 
Joop, ben je er nog aan toe gekomen?

Zijn er nog andere mensen misschien die dit eens willen uitproberen?
Wat feedback zou erg cool zijn, maar nogmaals, alleen voor javascript programmeurs is dit interessant.
 
Hey,

Interessant project. Ik moet zeggen dat ik er wel lichtelijk onder de indruk ben, erg nette code (hoewel sommige dingen een beetje apart zijn, tenminste, dat vind ik). Ikzelf houd overgens niet echt van de framework achtige dingen.

Dit zal de code zeker overzichtelijker gaat maken als je in een groot project bezig bent. Vooral het hele folder-idee (packages in folders) vind ik geweldig.

mn foutconsole geeft trouwens de (stricte) warning
Waarschuwing: reference to undefined property scope[parts]
Bronbestand: file:///C:/Users/Gebruiker/Desktop/packages/packages.js
Regel: 342
. Nu is dit natuurlijk een stricte warning, maargoed, het is makkelijk te fixen.

Ohja, zou het niet leuk zijn om het mogelijk te maken packages te verkrijgen die niet lokaal staan? Je gebruikt dom om heel netjes een script tag in de <head> erbij te zetten voor elke dep. Ik heb zelf even lokaal getest, maar krijg een file://C:\... link. Mischien dat het online wel kan? Het idee was zoiets:[JS]Package("example.greetingtest", ["http://members.chello.nl/sgm.jansen/PackagesJS/example.hello"], function(greeting) {
// stuff. De link is overgens naar de online test.
});[/JS]helaas kan ik nu even niet bij mn webserver, anders had ik t wel geprobeert.


Wat me opviel aan je code (een paar dingen die ik wel apart):
[JS]for (var i=dependencies.length-1; i>=0; i--) {
for (var r=0, rlen=this.registered.length; r<rlen; r++) {[/JS]
(Package.importDependencies)
Vanwaar eerst een loop achteruit, en de andere vooruit? Er zijn meer plekken in je code waar je achteruit loopt, maar op die plekken is het logischer (zoals in Package.resolve).

De != "undefined" (regel: 342, zie die strict warning): is het niet handiger de quotes weg te laten? (undefined is immers een native 'type').

In Package.init: er staat this.file = "packages.js";, maar wat als ik de naam van de .js file verander (bijvoorbeeld in foo.js) werkt je script niet helemaal goed meer. Mischien een idee om ergens (op de site?) te vermelden dat deze wel meeveranderd moet worden.


goed, dat was het een beetje van wat me zo opviel. Hoop dat je er wat aan hebt. Overgens zijn er op helpmij niet zo heel erg veel javascripters die meer dan knippen/plakken doen, dus op erg veel feedback hoef je niet echt te rekenen (maargoed, te zien aan de data had je dat zelf al wel door denk ik).



Niels :thumb:
 
Laatst bewerkt:
Vegras, allereerst bedankt voor je diepgaande reactie! Je hebt het echt goed bekeken wat maar zelden voorkomt en dat vind ik echt heel cool.

Ik ben inmiddels bezig met een volledige rewrite voor release candidate 2. Aan de buitenkant zal er weinig veranderen, maar ik heb een manier ontdekt om het netter en compacter te doen en ja dan moet dat dus ook he. ;)

Wat betreft je opmerkingen:

mn foutconsole geeft trouwens de (stricte) warning

Komt goed in rc-2. :)

Ohja, zou het niet leuk zijn om het mogelijk te maken packages te verkrijgen die niet lokaal staan?

Zeker! Overigens gaat het er niet om of ze lokaal staan of op een webserver, maar dat ze 'naast' en 'onder' packages.js staan. De package naam wordt nu namelijk één-op-één vertaald naar een relatieve url, die vervolgens achter de baseurl van packages.js zelf wordt geplakt. In jouw voorbeeld vul je direct een url in bij de dependencies. Ik heb dit overwogen, maar besloten dat dat toch niet handig is. In plaats daarvan komt in rc-2 de mogelijkheid om d.m.v. een nieuwe functie Package.addLocator een locator functie toe te voegen die weet hoe die van een bepaalde package naam (of namen) de juiste url kan maken. Zo kun je allerlei dingen uithalen met de locaties van je packages terwijl zowel packages.js als de packages zelf niet hoeven te worden aangepast. Slechts een klein configuratie scriptje direct na packages.js includen en daarin je custom locators toevoegen.

Vanwaar eerst een loop achteruit, en de andere vooruit?

Waar mogelijk loop ik vooruit, maar als elementen verwijderd worden in de loop dan is achteruit loopen veel makkelijker omdat de loop count dan niet veranderd tijdens het loopen. Of ik loop achteruit om de volgorde van elementen te herstellen als die tijdens een andere operatie omgedraaid was, zoals bij het executen van de calbacks van de resolved dependencies.

In Package.init: er staat this.file = "packages.js";, maar wat als ik de naam van de .js file verander (bijvoorbeeld in foo.js) werkt je script niet helemaal goed meer. Mischien een idee om ergens (op de site?) te vermelden dat deze wel meeveranderd moet worden.

Ja dat is nog steeds een issue. In rc-2 staat dat statement helemaal bovenaan waardoor je het meteen ziet als je de file opent, maar tegen de tijd dat die released wordt zal ik ook de site aanpassen... tenzij iemand een manier weet om de baseurl van het eigen script te bepalen zonder de scriptnaam in het script in te programmeren? Iemand?

Heel erg bedankt voor je reactie, die wordt zeer gewaardeerd en geeft me weer energie om met dit project door te gaan!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan