How we code at BKLYN
We won’t get into the developer vs coder vs programmer discussion because at the end of the day we want to deliver a working project to the client. On a daily basis we balance the management and development aspects using various tools at our disposal. Our development toolbox is varied and adaptable for our needs. We utilize our share of Adobe related products such as Photoshop and Illustrator. We also take advantage of collaboration tools such as Invision and Slack. What about the code you say? How do we write that 21st century gold and how do we make sure it’s prepped and delivered to you reliably and functionally? This is where we might say “Simply…”; however, we do realize that there are a lot of tools out there and things can get complicated. We will focus on a few tools that are constant in our projects. Namely: The console, Git, Atom/Sublime/Visual Studio Code and FTP/SSH/SFTP.
The command line/terminal/console
If you’re not familiar with a command line/terminal/console then you may have already seen it but weren’t aware of what it really was. A terminal is a magical little application that allows you to intimately interact with your computer by typing out commands. Aesthetically, most know it as that little black screen with white lettering, or customized to whatever style you like. Whatever your familiarity or skills with the terminal we can, and should, agree that the terminal is one of your most important tools. At BKLYN we use the terminal in whatever environment makes sense for us: Windows, OSX, Linux. We use the terminal for building, administering and deploying our applications.
What editors we use
We’re not fanboys or fangirls of any single editor. If it works, we use it. We favor the simple ones that are easy to use and easy to be productive with. Our main editor is Atom. Atom is lightweight, extendable and gets out of our way. We’ve also dabbled with Visual Studio Code, Dreamweaver, Sublime, Komodo Edit, Notepad++ and a bunch more. Atom provides a responsive and easily extendable interface for us. For example, we use the project-management addon, with the Remote-
FTP addon to support multiple projects at once. We find that an editor that gets out of your way and allows you to actually be productive is the best one. If we have to spend a day setting up our editor then that should be it. We should be productive the day after that, and the day after that and so on.
Our projects don’t live on our computers alone. In order for others to be able to see and interact with them, they must be served by, well, a server. In order to edit the files on our servers we use remote file transfer and management software. Our current favorite method of editing remotely is with an SFTP (Secure File Transfer Protocol/File transfer over SSH) plugin for whichever editor we’re using. SFTP should not be confused with FTP (File Transfer Protocol) or FTPS ( File Transfer Protocol Secure). This plugin allows us to quickly save changes while staying out of the way. We also utilize SSH (Secure Shell) through the command line and can edit files remotely if necessarily. We limit the use of the command line for making server configuration changes and application configuration changes.
How we use Git
The final tool we will talk about is GIT. If you’re reading this then you’ve probably heard about git. If you haven’t then, git is a tool that allows you to track many different version of your files and application. Git measure changes at the block/very low level and allows you to see very granular changes in your daily work. Your changes are stored as commits with only the changed files being stored. Think of it as your bank account. At the end of every day there are minor changes in balance and deposits/credits that give you a snapshot of what happened that day. Git is a powerful tool and helps us share, deliver and continuously improve applications for all of our clients.
Stay tuned for “Deeper into the Development Toolbox”
This is only the tip of the iceberg. We will talk about our deployment, code repository and collaboration process in a deeper dive into our development toolbox.