chrisguitarguy
Joined 15 years ago
Joined 15 years ago
Info/debug level logs sure, I don't disagree. As long as there is some built in or community standard logger and not the libraries own custom thing.
Errors, I'd rather they throw and my own app's logging facilities kick in that can provide more context: which server, which container, request info (method, path, request ID), etc. Granted some of that could come from configuring a logger with it.
For something like a library: no logging, that's not a library's job -- unless it's a logging library! If the language has exceptions, then throwing only subclasses or implementations of a single exception parent/interface from the entire library is nice for clients of the library.
As far as bedtime/sleep stuff: I pretty much just wind down after the kids go to bed. Meditate if I haven't got that in yet (or maybe do a shorter session if I have and am feeling stressed). Read. Then try to get to bed early enough to give myself an 8-ish hour sleep window.
I think all non-managers should read it as well as it will give you some clarity on what you should expect from your manager and what their day-to-day is like.
> Can you describe the practical benefit?
For a test case that produces a bug, you might find the bug manually. Getting that manual process into a test case is often a chore, but in doing so you'll better understand how the system with the bug failed. Did it call collaborators wrong? Did something unexpected get returned? Etc. In those cases, I think the benefit really is a better understanding of the system.
> Do you happen to rewrite the tests completely while doing the implementation?
A TDD practicioner will probably tell you taht you're doing it wrong if you do this. You write the minimum viable test that fails first. It might be something simple like "does the function/method exist". You add to your tests just in time to make the change in the real code.
This is coupled with a move away from cookies[0].
0. https://adwords.googleblog.com/2017/01/making-youtube-better...
PMG is looking for some senior-level engineers to help us build in house advertising tools. These are usually more than just web apps and tend to be fairly interesting to work on. PMG works with a lot of high end fashion/retail and travel clients (https://www.pmg.com/clients/).
Lots of freedom to choose your own technologies, but we use a lot of PHP (Symfony, Doctrine), Python, JavaScript, and Go currently along with the usual mix of databases (Elasticsearch, MongoDB, MySQL, PostgreSQL, Redis).
- https://www.pmg.com/careers/positions/#job/05bbd107-30fc-4fa...
- https://www.pmg.com/careers/positions/#job/ce0c5068-3625-479...
- https://www.pmg.com/careers/positions/#job/bc07d1f3-46dc-4d3...
There's a lot more opportunity to do messaging between businesses and individuals (eg. customer service) as well -- see messenger for business.
Not saying Facebook isn't out to sell ads, just that there's probably a lot of reasons that Facebook might want WhatsApp's technology and team. Especially as they try to move more conversations onto their platform and reach out into other markets.
Write adapters or facades that wrap external libraries, use those in your own code's unit tests. This makes you less bound to a specific library as well. Don't mock the outside world [0] for testing your adapters/facades/whatever, but do integration tests that cover your adapters using the real outside world.
You'd also do complete end to end tests where the entire system is used as if it were in production (acceptance testing). TDD makes a lot more sense if you think of it in those three layers: acceptance, integration, unit.
[0] Outside world means anything that's not your code -- networking, filesystem, external libraries, etc.
> I'm proud to release the result of a Facebook-sponsored study on the feasibility of using the RPython toolchain to produce a PHP interpreter. The rules were simple: two months; one person; get as close to PHP as possible, implementing enough warts and corner cases to be reasonably sure that it answers hard problems in the PHP language. The outcome is called Hippy VM and implements most of the PHP 1.0 language (functions, arrays, ints, floats and strings).
Also run a site about classical guitar, my instrument: http://www.classicalguitar.org/
Email: chris {AT} classicalguitar.org