Programming: Difference between revisions
| Line 49: | Line 49: | ||
* [https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1008549 Ten simple rules for quick and dirty scientific programming] | * [https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1008549 Ten simple rules for quick and dirty scientific programming] | ||
* [http://onetipperday.sterding.com/2016/02/my-15-practical-tips-for.html My 15 practical tips for a bioinformatician] | * [http://onetipperday.sterding.com/2016/02/my-15-practical-tips-for.html My 15 practical tips for a bioinformatician] | ||
= Organize your utility files and functions = | |||
[https://freedium-mirror.cfd/https://medium.com/the-pythonworld/stop-writing-utility-functions-in-python-heres-the-better-pattern-297f820eb2db Stop Writing Utility Functions in Python (Here's the Better Pattern)] | |||
Instead of | |||
<pre> | |||
source("utils.R") | |||
format_date(x) # 你完全不知道:format 的是哪種日期? | |||
validate_input(df) # validate 的是什麼資料? | |||
process_data(df) # process 的是哪種資料流程? | |||
</pre> | |||
Replacing utility.R with | |||
<pre> | |||
users/validation.R | |||
billing/dates.R | |||
orders/processing.R | |||
</pre> | |||
and use them like | |||
<pre> | |||
billing::format_invoice_date() | |||
orders::process_pending_orders() | |||
</pre> | |||
Python 用 class 來處理有規則的邏輯。在 R 裡,你可以用: | |||
* R6 class | |||
* S3 method | |||
* S4 class | |||
R 裡真正適合放 utils 的只有: | |||
* 純函式(pure function) | |||
* 無狀態 | |||
* 與 domain 無關 | |||
* 在任何專案都適用 | |||
= Research code = | = Research code = | ||
Latest revision as of 08:54, 12 February 2026
TIOBE Index
- https://www.tiobe.com/tiobe-index/
- https://en.wikipedia.org/wiki/TIOBE_index
- Why fortran and cobol are still used? Fortran is still used because they are specialized for high-performance computing. Ninety-two percent of organizations view their COBOL application workloads as being strategic for their business operations.
Developer tools
34 Best Developer Tools for Building Modern Apps
Learn any programming language
- 5 steps to learn any programming language
- Ten simple rules for biologists learning to program
- A cartoon guide to bioinformatics by a novice coder
- The 10 Best Free Udemy Courses
- PROGRAMMING by MakeUseOf.
Variable naming
Data Scientists, Your Variable Names Are a Mess. Clean Up Your Code
Alternatives to "tmp"
- tempVar
- buffer
- placeholder
- interim
- transient
- auxiliary
- provisional
Collaboration
9 ways to improve collaboration between developers and designers
Code review
- Code Review Developer Guide - Google's Engineering Practices documentation
- Code Review Checklist R Code Edition Top 3, Code Review Example R Code Caret
- Ten simple rules for scientific code review PLOS 2024
Deployment environment
Manifest file 清單檔案
Manifest file. A manifest file in computing is a file containing metadata for a group of accompanying files that are part of a set or coherent unit. For example, the files of a computer program may have a manifest describing the name, version number, license and the constituent files of the program.
Coding Standards
- STAT:7400 Computer Intensive Statistics, Luke Tierney
- 50 Coding Laws That Would Make You A Decent Programmer
Be a good programmer
- One secret to becoming a great software engineer: read code
- Ten simple rules for quick and dirty scientific programming
- My 15 practical tips for a bioinformatician
Organize your utility files and functions
Stop Writing Utility Functions in Python (Here's the Better Pattern)
Instead of
source("utils.R")
format_date(x) # 你完全不知道:format 的是哪種日期?
validate_input(df) # validate 的是什麼資料?
process_data(df) # process 的是哪種資料流程?
Replacing utility.R with
users/validation.R billing/dates.R orders/processing.R
and use them like
billing::format_invoice_date() orders::process_pending_orders()
Python 用 class 來處理有規則的邏輯。在 R 裡,你可以用:
- R6 class
- S3 method
- S4 class
R 裡真正適合放 utils 的只有:
- 純函式(pure function)
- 無狀態
- 與 domain 無關
- 在任何專案都適用
Research code
The Good Research Code Handbook
Code club
Ten simple rules to increase computational skills among biologists with Code Clubs
Tutorials
- https://www.w3schools.com
- TutorialsPoint Offline Version Download 2018 [Full Website] 3GB download. The index.html file shows the bundle is done by HTTrack Website Copier.
Keeping Your Code Clean With Prettier
Keeping Your Code Clean With Prettier, the playground.
$ cat > tmp.js <<EOF
(function ()
{
window.alert('ok')
}())
EOF
$ npx prettier --write tmp.js
$ cat tmp.js
(function () {
window.alert("ok");
})();