V minulém příspěvku jsem zmínil, že pro běžné dokumenty a domácí použití už téměř nepoužívám programy jako Word či Excel z balíčku Microsoft Office. Ovšem netýká se to jen těchto programů - například Visio jsem si nahradil aplikací Draw.IO, kterou lze jednoduše do Google Drive doinstalovat a opět si využívat všech výhod, které to přináší.
Nepřehlédnutelná je i finanční stránka, Visio stojí jednorázově 300.00 až 600.00 USD a nebo cca 15 dolarů při měsíčních platbách, zatímce Draw.io je zadarmo. Navíc není problém sdílet hotové nákresy například na stránkách, ostatně toto je příklad
Activity Diagramu k předchozímu článku:
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
Jak je vidět, kód v předchozím článku se mírně liší, je zjednodušený neb neobsahuje rekurzi, která je v tomto
Activity Diagramu zachycena. Po úpravě by pak kód vypadal takto:
function pronunciation(input)
{
if ((input != null && input !== undefined) && !input.map) {
Utilities.sleep(1000);
var sourceHtml = UrlFetchApp.fetch('http://dictionary.cambridge.org/search/english/direct/?q=' + input).getContentText();
var pronunciationStartTag = '<span class="ipa">';
var start = sourceHtml.indexOf(pronunciationStartTag,40000); //skipping 40.000 chars forward to just speed up the search
if(start > 0)
{
var innerText = [];
var position = start + pronunciationStartTag.length;
getTagInnerText_(sourceHtml, innerText, position);
return innerText.join('');
}
}
return '';
}
function getTagInnerText_(sourceHtml, innerText, position) {
do {
if(sourceHtml.charAt(position) !== '<'){
innerText.push(sourceHtml.charAt(position));//no tag start -> store it
position++;
}
else {
var endPosition = sourceHtml.indexOf('>', position);//end of the tag
if(sourceHtml.charAt(position +1) === '/' || sourceHtml.charAt(endPosition-1) === '/') //closing tag ?
return ++endPosition;
else
position = getTagInnerText_(sourceHtml, innerText, endPosition +1); //read the text from the inner tag
}
} while(true);
}
UML je asi dobré chápat jako doplněk k programování - existují názory, že dobrý kód je samopopisující se, ale přeci jen grafický popis může v mnoha případech popsat děj přehledněji a umožní i rychlé posouzení případných změn a úprav. určitě se tedy vyplatí nějaká zásady pro UML znát, i když si myslím, že není potřeba se zcela řídit pravidly - důležité je, aby se ve výsledku dalo vyznat a k něčemu to bylo.
Žádné komentáře:
Okomentovat