Revision 11737
Added by Aaron Marcuse-Kubitza almost 11 years ago
index.htm | ||
---|---|---|
287 | 287 |
<DD>page's description: Redmine |
288 | 288 |
<DT><A HREF="https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki" name="https://projects.nceas.ucsb.edu/nceas/projects/bien/wiki" ADD_DATE="1318280630" ICON_URI="https://projects.nceas.ucsb.edu/nceas/favicon.ico?1347421715" LAST_CHARSET="UTF-8"><img width="16" height="16" src="https://projects.nceas.ucsb.edu/nceas/favicon.ico?1347421715" style="margin-right: 0.5em;"/>BIEN - Wiki - NCEAS Projects</A><a name="BIEN - Wiki - NCEAS Projects" href="#BIEN - Wiki - NCEAS Projects" style="margin-left: 0.5em;">¶</a> |
289 | 289 |
<DD>page's description: Redmine |
290 |
<DT><A HREF="https://pods.iplantcollaborative.org/wiki/display/sciplant/BIEN+Database+3.0" name="https://pods.iplantcollaborative.org/wiki/display/sciplant/BIEN+Database+3.0" ADD_DATE="1385071786" ICON_URI="https://pods.iplantcollaborative.org/wiki/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="https://pods.iplantcollaborative.org/wiki/favicon.ico" style="margin-right: 0.5em;"/>BIEN Database 3.0 - SciPlant - iPlant Collaborative Wiki</A><a name="BIEN Database 3.0 - SciPlant - iPlant Collaborative Wiki" href="#BIEN Database 3.0 - SciPlant - iPlant Collaborative Wiki" style="margin-left: 0.5em;">¶</a> |
|
290 | 291 |
<DT><A HREF="http://www.iplantcollaborative.org/node/1044" name="http://www.iplantcollaborative.org/node/1044" ADD_DATE="1317675381" ICON_URI="http://www.iplantcollaborative.org/sites/all/themes/iplant/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://www.iplantcollaborative.org/sites/all/themes/iplant/favicon.ico" style="margin-right: 0.5em;"/>BIEN Project | iPlant Collaborative Web Portal</A><a name="BIEN Project | iPlant Collaborative Web Portal" href="#BIEN Project | iPlant Collaborative Web Portal" style="margin-left: 0.5em;">¶</a> |
291 | 292 |
<DT><A HREF="http://chac.iplantcollaborative.org/documents/bien.pdf" name="http://chac.iplantcollaborative.org/documents/bien.pdf" ADD_DATE="1317674748"><img width="16" height="16" src="blank.gif" style="margin-right: 0.5em;"/>bien.pdf</A><a name="bien.pdf" href="#bien.pdf" style="margin-left: 0.5em;">¶</a> |
292 | 293 |
<DT><A HREF="http://vegpath.org/links/" name="http://vegpath.org/links/" ADD_DATE="1366942991" ICON_URI="http://vegpath.org/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://vegpath.org/favicon.ico" style="margin-right: 0.5em;"/>Bookmarks</A><a name="Bookmarks" href="#Bookmarks" style="margin-left: 0.5em;">¶</a> |
... | ... | |
484 | 485 |
<DT><A HREF="http://www.nceas.ucsb.edu/" name="http://www.nceas.ucsb.edu/" ADD_DATE="1318527006" ICON_URI="http://www.nceas.ucsb.edu/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://www.nceas.ucsb.edu/favicon.ico" style="margin-right: 0.5em;"/>Welcome to NCEAS | NCEAS</A><a name="Welcome to NCEAS | NCEAS" href="#Welcome to NCEAS | NCEAS" style="margin-left: 0.5em;">¶</a> |
485 | 486 |
<DT><A HREF="http://help.nceas.ucsb.edu/Main_Page" name="http://help.nceas.ucsb.edu/Main_Page" ADD_DATE="1367497633" ICON_URI="http://help.nceas.ucsb.edu/_media/:wiki:favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://help.nceas.ucsb.edu/_media/:wiki:favicon.ico" style="margin-right: 0.5em;"/>main_page [NCEAS Computing Services Knowledge Base]</A><a name="main_page [NCEAS Computing Services Knowledge Base]" href="#main_page [NCEAS Computing Services Knowledge Base]" style="margin-left: 0.5em;">¶</a> |
486 | 487 |
<DT><A HREF="http://help.nceas.ucsb.edu/user_accounts" name="http://help.nceas.ucsb.edu/user_accounts" ADD_DATE="1360417540" ICON_URI="http://help.nceas.ucsb.edu/_media/:wiki:favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://help.nceas.ucsb.edu/_media/:wiki:favicon.ico" style="margin-right: 0.5em;"/>user_accounts [NCEAS Computing Services Knowledge Base]</A><a name="user_accounts [NCEAS Computing Services Knowledge Base]" href="#user_accounts [NCEAS Computing Services Knowledge Base]" style="margin-left: 0.5em;">¶</a> |
488 |
<DT><A HREF="https://identity.nceas.ucsb.edu/identity/cgi-bin/ldapweb.cgi?cfg=account&stage=changepass" name="https://identity.nceas.ucsb.edu/identity/cgi-bin/ldapweb.cgi?cfg=account&stage=changepass" ADD_DATE="1385082224" LAST_CHARSET="windows-1252"><img width="16" height="16" src="blank.gif" style="margin-right: 0.5em;"/>NCEAS Identity Manager (to change password)</A><a name="NCEAS Identity Manager (to change password)" href="#NCEAS Identity Manager (to change password)" style="margin-left: 0.5em;">¶</a> |
|
487 | 489 |
<DT><A HREF="http://help.nceas.ucsb.edu/Staff_Computer_Setup#Thunderbird" name="http://help.nceas.ucsb.edu/Staff_Computer_Setup#Thunderbird" ADD_DATE="1318292192" ICON_URI="http://help.nceas.ucsb.edu/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://help.nceas.ucsb.edu/favicon.ico" style="margin-right: 0.5em;"/>Staff Computer Setup - NCEAS Knowledge Base</A><a name="Staff Computer Setup - NCEAS Knowledge Base" href="#Staff Computer Setup - NCEAS Knowledge Base" style="margin-left: 0.5em;">¶</a> |
488 | 490 |
<DT><A HREF="https://mail.nceas.ucsb.edu/webmail/" name="https://mail.nceas.ucsb.edu/webmail/" ADD_DATE="1318291902" ICON_URI="https://mail.nceas.ucsb.edu/webmail/skins/default/images/favicon.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="https://mail.nceas.ucsb.edu/webmail/skins/default/images/favicon.ico" style="margin-right: 0.5em;"/>NCEAS Webmail :: Welcome to NCEAS Webmail</A><a name="NCEAS Webmail :: Welcome to NCEAS Webmail" href="#NCEAS Webmail :: Welcome to NCEAS Webmail" style="margin-left: 0.5em;">¶</a> |
489 | 491 |
<DT><A HREF="http://support.nceas.ucsb.edu/rt/" name="http://support.nceas.ucsb.edu/rt/" ADD_DATE="1319052273" ICON_URI="http://support.nceas.ucsb.edu/rt/NoAuth/images/favicon.png"><img width="16" height="16" src="http://support.nceas.ucsb.edu/rt/NoAuth/images/favicon.png" style="margin-right: 0.5em;"/>support</A><a name="support" href="#support" style="margin-left: 0.5em;">¶</a> |
... | ... | |
1377 | 1379 |
</DL><p> |
1378 | 1380 |
<DT><a name="software concepts" href="#software concepts"><H3 ADD_DATE="1368357824">software concepts</H3></a> |
1379 | 1381 |
<DL><p> |
1382 |
<DT><a name="APIs" href="#APIs"><H3 ADD_DATE="1385418735">APIs</H3></a> |
|
1383 |
<DL><p> |
|
1384 |
<DT><A HREF="http://lcsd05.cs.tamu.edu/slides/keynote.pdf" name="http://lcsd05.cs.tamu.edu/slides/keynote.pdf" ADD_DATE="1385418740" LAST_CHARSET="UTF-8"><img width="16" height="16" src="blank.gif" style="margin-right: 0.5em;"/>**** How to Design a Good API and Why it Matters</A><a name="**** How to Design a Good API and Why it Matters" href="#**** How to Design a Good API and Why it Matters" style="margin-left: 0.5em;">¶</a> |
|
1385 |
<DD>"Public APIs are forever - one chance to get it right" |
|
1386 |
|
|
1387 |
"Code lives on as examples, unit tests |
|
1388 |
|
|
1389 |
"Your job is to extract true requirements |
|
1390 |
_ |
|
1391 |
Should take the form of |
|
1392 |
use-cases" |
|
1393 |
|
|
1394 |
"Write multiple plug-ins before release [...] If you write three, it will work fine" |
|
1395 |
|
|
1396 |
"You |
|
1397 |
won't |
|
1398 |
be |
|
1399 |
able |
|
1400 |
to |
|
1401 |
please |
|
1402 |
everyone |
|
1403 |
_ |
|
1404 |
Aim |
|
1405 |
to |
|
1406 |
displease |
|
1407 |
everyone |
|
1408 |
equally" |
|
1409 |
|
|
1410 |
"Expect to evolve API" |
|
1411 |
|
|
1412 |
"You can always add, but you can never remove" |
|
1413 |
|
|
1414 |
"Names Should Be Largely Self-Explanatory |
|
1415 |
_ |
|
1416 |
Avoid |
|
1417 |
cryptic |
|
1418 |
abbreviations" |
|
1419 |
|
|
1420 |
"Parameter: indicate units, form, ownership" |
|
1421 |
|
|
1422 |
"Dimension |
|
1423 |
is mutable |
|
1424 |
• |
|
1425 |
Each |
|
1426 |
getSize |
|
1427 |
call must allocate |
|
1428 |
Dimension |
|
1429 |
• |
|
1430 |
Causes |
|
1431 |
millions |
|
1432 |
of needless object allocations" |
|
1433 |
|
|
1434 |
"Classes should be immutable unless there |
|
1435 |
’ |
|
1436 |
s a |
|
1437 |
good reason to do otherwise" |
|
1438 |
|
|
1439 |
"Reduce need for |
|
1440 |
boilerplate code |
|
1441 |
_ |
|
1442 |
Generally done via cut-and-paste" |
|
1443 |
|
|
1444 |
"Overload |
|
1445 |
With |
|
1446 |
Care [...] no two with same number of |
|
1447 |
args" |
|
1448 |
|
|
1449 |
"Three or fewer parameters is ideal" |
|
1450 |
|
|
1451 |
"Create helper class to hold parameters" |
|
1452 |
</DL><p> |
|
1380 | 1453 |
<DT><A HREF="http://en.wikipedia.org/wiki/Scope_%28programming%29#Dynamic_scoping" name="http://en.wikipedia.org/wiki/Scope_%28programming%29#Dynamic_scoping" ADD_DATE="1368357608" ICON_URI="http://bits.wikimedia.org/favicon/wikipedia.ico" LAST_CHARSET="UTF-8"><img width="16" height="16" src="http://bits.wikimedia.org/favicon/wikipedia.ico" style="margin-right: 0.5em;"/>Dynamic scoping < Scope (computer science) - Wikipedia, the free encyclopedia</A><a name="Dynamic scoping < Scope (computer science) - Wikipedia, the free encyclopedia" href="#Dynamic scoping < Scope (computer science) - Wikipedia, the free encyclopedia" style="margin-left: 0.5em;">¶</a> |
1381 | 1454 |
<DD>"Dynamic scoping also voids all the benefits of referential transparency" |
1382 | 1455 |
|
Also available in: Unified diff
web/links/index.htm: updated to Firefox bookmarks. added API writing links, including the best quotes from a Google developer's PowerPoint on the topic.