Project requirements that have a clear definition of done and do not change every other day.
Or... Projects requirements that have a clear definition of outcome and change ever other day based on data.
Ask HN: What is the ideal developer experience in 2020?
71–80 of 92 posts
Re: Ask HN: What is the ideal developer experience in 2020?
#72It has been a long time since I've done any web development, but I've done almost everything else, and I've converged on preferring C# in Visual Studio. Why? - typechecked, but the types get out of the way; "var" and intellisense fill them in for you. It also shows you what types the function arguments should be and autosuggests objects of those types - functional when you want, but not when you don't: LINQ et al, in…
Re: Ask HN: What is the ideal developer experience in 2020?
#73"Rethinking from first principles" and "reinventing the wheel" are pretty easy to conflate. Proceed with caution. My recommendation is to choose boring technologies that are widely deployed so that people will have to support them for decades to come. If there isn't a mature, well-supported option in a space, it's better to roll your own than to spend a bunch of time learning a technology and writing code, and then h…
Most people who rethink for first principles actually reinvent the wheel. Once in a while, someone doesn't, and they change the world. It's worth the exercise, even if the odds of success are rather low.
Re: Ask HN: What is the ideal developer experience in 2020?
#74It has been a long time since I've done any web development, but I've done almost everything else, and I've converged on preferring C# in Visual Studio. Why? - typechecked, but the types get out of the way; "var" and intellisense fill them in for you. It also shows you what types the function arguments should be and autosuggests objects of those types - functional when you want, but not when you don't: LINQ et al, in…
> Language interoperability is another: it's still astonishingly hard to combine languages within a single software artefact unless they're C and C++ or similar things that produce platform-native binaries. Earlier, you mentioned F#. How easy is it to combine C# and F#?
https://docs.microsoft.com/en-us/dotnet/standard/language-in...
That details the C# point of view (a little VB too) and here's an SO post on how to add the CLSCompliant attribute to F#:
https://stackoverflow.com/questions/21028833/writing-cls-com...
I remember these concepts being very important in the early days of .NET because companies had heavy investments in legacy code, including COM, C, C++, other .NET languages (various forms of interop) and needed integration and/or upgrade migration paths. Language interop came into play because some companies thought (not taking an opinion here) it might be a good idea for developers to use the language of their choice.
Re: Ask HN: What is the ideal developer experience in 2020?
#75I often consult other teams in my company on technical issues and architecture. Coming from this background I always wish the following would be covered: - The project should start up with one click or one command. It's fine if I need to configure credentials or something similar, but beyond that, your project should be so easy to start that your mom could do it. If the project requires me to locally install a databa…
If the project requires me to locally install a database, configure ports, or anything of the like, that's a shining red flag that things are very wrong
Backend project? you need to provide a docker-compose setup. Not just for the database, also for any other service like Redis, ElasticSearch, etc. If you're expecting PRs, you'll also need a good database unit test suit, preferably running something like Sqlite.Frontend? ideally you'll provide the API setup like before, but I'll settle for a dev env online.
Re: Ask HN: What is the ideal developer experience in 2020?
#76I don’t know about you guys, but .NET Core (c#) and Visual Studio along with Blazor on the front end and deploying on Linux is pretty darn cool and highly productive. I haven’t had much success getting as productive on Python, Golang, or Node. Blazor eats TypeScript for lunch. Sometimes people confuse complexity for productivity. You can’t tell me installing 60,000 NPM packages just to have one dependency break is yo…
However, "Visual Studio" is not my idea of the ideal developer experience... Maybe if the projects could be developed in VSCode
Re: Ask HN: What is the ideal developer experience in 2020?
#77For me what I've been moving closer towards and is almost my reality for projects I have full control over: * Node.js on backend, using a thin db layer (not an orm) like sequelize. My newer projects also use TypeScript on back end and share models with front end with a lerna setup * React.js with TypeScript (default create-react-app setup) on frontend; multiple smaller apps for each business unit/functional area; som…
What happens if a client is interacting with the app at that very moment?
Re: Ask HN: What is the ideal developer experience in 2020?
#78- Should not need an IDE ::: The system should be able to be developed without depending on a particular IDE or set of proprietary build tools.
- CLI tool-chain ::: The system should be able to be built and deployed using CLI tools, preferably open-source.
- Versioned deploys and Rollback ::: Each deployment should be versioned and rolling back should be fairly trivial (when things break this needs to be easy).
- Modular development ::: pieces of the system should be able to be developed individually without compiling/building the entire project.
- Poly Repositories ::: I've found mono-repos make every bit of code highly-coupled. CI tools like github actions, makes poly-repos much easier to manage and improve separation of concerns, dependency management and modularity of components.
- Feature based folder structure ::: Grouping source files by feature, rather than by file type.
- Design components for testing ::: Testing should be considered during development of components, then integration of testing later is much easier (decouple database logic, dependency inversion etc.).
- Encapsulation of libraries ::: I personally prefer that most external libraries are encapsulated within wrapper classes, in order to insulate them from directly touching different parts of the system (ideally)
- Cross-platform should be trivial ::: Web-based applications easily achieve this, but so do many scripting languages etc. If building for different platforms is unreliable/impossible than that's not ideal.
These things vary in importance from person to person, but they're important to me.
Re: Ask HN: What is the ideal developer experience in 2020?
#79I often consult other teams in my company on technical issues and architecture. Coming from this background I always wish the following would be covered: - The project should start up with one click or one command. It's fine if I need to configure credentials or something similar, but beyond that, your project should be so easy to start that your mom could do it. If the project requires me to locally install a databa…
Re: Ask HN: What is the ideal developer experience in 2020?
#80I don’t know about you guys, but .NET Core (c#) and Visual Studio along with Blazor on the front end and deploying on Linux is pretty darn cool and highly productive. I haven’t had much success getting as productive on Python, Golang, or Node. Blazor eats TypeScript for lunch. Sometimes people confuse complexity for productivity. You can’t tell me installing 60,000 NPM packages just to have one dependency break is yo…
Are people really using Blazor in production? What does your build pipeline look like? What dependencies/frameworks are you using?